More work on the incremental importing of multiple branches.
Improved error detection by checking the exit code of git-fast-import.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Improved error detection by checking the exit code of git-fast-import.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Give branches a nice project prefix and don't bail out on clone if we failed
to detect the master branch.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
to detect the master branch.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Started rewriting the branch detection, based on "p4 branches" and "p4 branch -o foo".
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Removed unused cache variables.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Fix branch setup after initial clone.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Removed todo item that is implemented :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added support for git-p4 sync/rebase --with-origin. See git-p4.txt for details :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Bite the bullet and automatically convert old style refs/heads/p4 repositories
to the new style refs/remotes/p4 branching.
Signed-off-by: Simon Hausmann <simon@lst.de>
to the new style refs/remotes/p4 branching.
Signed-off-by: Simon Hausmann <simon@lst.de>
Changed the default p4 import branch to be refs/remotes/p4/{HEAD,master}
instead of refs/heads/p4.
Signed-off-by: Simon Hausmann <simon@lst.de>
instead of refs/heads/p4.
Signed-off-by: Simon Hausmann <simon@lst.de>
Create the origin based import branch using git update-ref instead of git branch
so that it's possible to have the import branch in refs/remotes.
Signed-off-by: Simon Hausmann <simon@lst.de>
so that it's possible to have the import branch in refs/remotes.
Signed-off-by: Simon Hausmann <simon@lst.de>
Removed ancient and unused code to find the last imported revision from previous imports
to use for the current import by looking at the p4 tags. The current approach of using
the log message works better.
Signed-off-by: Simon Hausmann <simon@lst.de>
to use for the current import by looking at the p4 tags. The current approach of using
the log message works better.
Signed-off-by: Simon Hausmann <simon@lst.de>
Removed cleantags command. It doesn't have any meaning anymore.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Clean up code duplication for revision parsing and fix previous commit to not
import into remotes/p4 (yet!).
Signed-off-by: Simon Hausmann <simon@lst.de>
import into remotes/p4 (yet!).
Signed-off-by: Simon Hausmann <simon@lst.de>
Always pass a sha1 for the initial parent so that git-fast-import doesn't think
it's creating a new branch from itself. It's a sensible error in general but
in the case of incremental imports we have to apply force :)
Signed-off-by: Simon Hausmann <simon@lst.de>
it's creating a new branch from itself. It's a sensible error in general but
in the case of incremental imports we have to apply force :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Fixing syncing (gitdir discovery / cd) for bare repositories
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
A little todo note before I forget it :), based on a suggestion from Lars.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Fix calling git-p4 rebase from within a subdirectory (git rebase wants to be in toplevel)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Give a better hint if git-p4 submit fails
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Added the possibility of skipping patches during git-p4 submit
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Make git-p4 work with bare repositories.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Fix git-p4 clone //depot/project (head import)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Make the command call silent
Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
Converted to unix newlines
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Make submitting work on Windows.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Make sure all popen calls use binary mode (for Windows) and
also make gitBranchExists work on Windows.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
also make gitBranchExists work on Windows.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added a little .bat wrapper from Marius
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Use the subprocess module instead of popen2 to make it work on Windows.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Document some implementation details, for the curious... :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Cleanup, removed the old tagging code
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
cleanup, renamed self.globalPrefix to self.depotPath
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Micro cleanup
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Doc cleanups.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Handle patch errors in git-p4 submit better.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
A new attempt at fixing the child-fast-import-process-not-finished race condition
in the clone command
Signed-off-by: Simon Hausmann <simon@lst.de>
in the clone command
Signed-off-by: Simon Hausmann <simon@lst.de>
Slightly improved formatting of the raw_input questions.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Removed the old patch apply code from git-p4 submit.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Fix the timezone formatting. Now qgit also displays (parses) it correctly.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Print an error message of some sort if git fast-import fails.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Allow for convenient rebasing after git-p4 submit
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added a simple example of usage to the "documentation" :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
fix variable usage (oops)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Fix file determination for #head imports
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added git-p4 clone convenience command
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Honor --silent for labels
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Turn off potentially slow label detection by default
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Provide a tree summary after git-p4 rebase
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added git-p4 rebase convenience
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Clean up python class names.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix "compilation" :)
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix the docs for git-p4 submit and turn git-p4 submit --master=foo into
simply git-p4 submit mytopicbranch.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
simply git-p4 submit mytopicbranch.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix variable usage in tag import
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added support for mapping p4 labels to git tags
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
git-p4 debug doesn't need a git repository
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Don't try to parse any options with git-p4 debug but pass it straight on to p4
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Prefer git command over git-command.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Minor cosmetic fixlet for the git-p4 submit sync question.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Different versions of p4 have different output for the where command ;(
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Use the new incremental import style by default
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Make it possible to run git-p4 submit from within the git repository
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Brand new smart incremental import that doesn't need tags or git repo-config :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Set the default branch in run, not in the constructor
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Helper function to check the existance of a revision
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added some helper function(s) to parse the depot path and change number from the log message
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Changed the default branch for imports from "master" to "p4"
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
17 years agoChanged the format of the imported log message slightly, so that it's easier to parse...
Changed the format of the imported log message slightly, so that it's easier to parse again.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Removed the .py extension from git-p4 as it's annoying to type every time.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Don't show the submit template and the diff first in less but show it in $editor right away
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Make it possible to invoke git-p4 from within subdirectories of a git working tree.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Made --apply-as-patch the default for git-p4 submit as it's significantly faster.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix support for deletions in git-p4 submit when using --apply-as-patch by filtering out deletions in the diff-tree output.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added experimental but super-fast --apply-as-patch option to git-p4 submit
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Documentation enhancements.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Start of the git-p4 documentation.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Removed p4-fast-export and p4-git-sync as they've been integrated into git-p4 now.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
17 years agoFixed the initial version import by getting the file index correct by correctly skipp...
Fixed the initial version import by getting the file index correct by correctly skipping deleted files.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added missing "self"s to make the script evaluate correctly.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Completely untested "merge" of p4-fast-export.py into git-p4.py
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
sync-to-perforce is now called submit and fixed the gitdir check a little bit
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Part of the code is copyright by Trolltech ASA.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
First (untested) attempt at migrating p4-git-sync into the final git-p4 script
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Provide a little bit of help description for the git-p4 "tools".
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Start moving the git-p4 tools into one single script.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Pass the right number of arguments to commit, fixes single-branch imports.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Improved the git dir detection.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Default to interactive syncing
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Use p4 revert ... instead of revert -a ... after submitting, to make sure the p4 checkout is clean.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Auto-detect the current git branch before submitting back to perforce.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Ignore Apple resource files when importing from perforce to git.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Be nice and use /usr/bin/env python for the git-p4 scripts
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Automatically operate on a temporary branch, needed for cherry-pick to work when applying changes to
files that are deleted in the future.
Also do some Perforce cleaning
Signed-off-by: Simon Hausmann <hausmann@kde.org>
files that are deleted in the future.
Also do some Perforce cleaning
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Lots of bugfixes to p4-git-sync.
Added interactive and dry-run mode.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added interactive and dry-run mode.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix git-dir option and allow reading log substitutions from a file
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
First version of a new script to submit changes back to perforce from git repositories.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Split up the cache commandline options into (command) cache and data cache.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
17 years agoReduce the number of false "merges" by skipping "branch from" entries in the integrat...
Reduce the number of false "merges" by skipping "branch from" entries in the integrated output as well as by ignoring integrations of future (newer) changes.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
More work on branch detection by implementing changeIsBranchMerge().
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
More code cleanups and preparations for more branch detection heuristics.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Minor code cleanups.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Make the p4 data/command cache configurable through the --cache-debug commandline option.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Fixed p4-debug file extension.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>