Simon Hausmann [Thu, 7 Jun 2007 07:37:13 +0000 (09:37 +0200)]
Fix common path "calculation" from logs of multiple branches.
Need to use min instead of max for prev/cur to avoid out-of-bounds
string access. Also treat "i" as index of the last match instead of
a length because in case of a complete match of the two strings
i was off by one.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Thu, 7 Jun 2007 07:19:34 +0000 (09:19 +0200)]
Fix support for "depot-path" in older git-p4 imports
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
look for 'text' and 'binary' files.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
thinko: really ignore deleted files.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
remove debug print
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Cleanups & import into p4/master for local import
- import into master/local if --import-local is set
- use Die() for exiting
- if --verbose is set, raise Exception()
- use joined strings iso. `list` for progress printing
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
use p4CmdList() to get file contents in Python dicts. This is more robust.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
only run p4 print if necessary
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
don't p4 print deleted files.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
read files before creating the commit.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
thinko.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
store p4 user cache in home directory.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Thinko, fix buglet.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Read p4 files in one batch.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
remove global .gitdir
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Merge origin.
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Diverse cleanups
- print commands with \n
- extractDepotPathsAndChangeFromGitLog -> extractSettings, returning
dict.
- store keepRepoPath in [git-p4: ] line
- create a main() function, so git-p4 can be pychecked
- use --destination for clone destination. This simplifies logic
for --keep-path
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Simon Hausmann [Mon, 28 May 2007 17:24:57 +0000 (19:24 +0200)]
Fix typo in listExistingP4Branches that broke sync.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Mon, 28 May 2007 17:23:19 +0000 (19:23 +0200)]
In *_pipe print the command that failed if it fails.
Fixed old calls to mypopen.
Signed-off-by: Simon Hausmann <simon@lst.de>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
Extract multiple paths concurrently.
This enables importing just the interesting bits of large
repositories.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
add --verbose to all commands.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:49:35 +0000 (18:49 -0300)]
use strip() iso. slicing for removing \n
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:29:34 +0000 (18:29 -0300)]
use string.strip() iso. slicing.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 21:20:53 +0000 (18:20 -0300)]
clone and sync --keep-path to keep perforce path to module.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 20:41:50 +0000 (17:41 -0300)]
minor cleanups
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 20:14:33 +0000 (17:14 -0300)]
cleanup
- use re.sub() iso. if for stripping ...
- spacing nits
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 20:10:46 +0000 (17:10 -0300)]
Robustness fixes for pipes
- add read_pipe(), read_pipe_lines(), write_pipe(), which
check pipe.close()
- use throughout
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 20:10:46 +0000 (17:10 -0300)]
add .dotest to .gitignore
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Simon Hausmann [Mon, 28 May 2007 12:43:25 +0000 (14:43 +0200)]
Fix my email address, this isn't really KDE related :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Han-Wen Nienhuys [Wed, 23 May 2007 19:55:48 +0000 (16:55 -0300)]
rename apply() to applyCommit(); apply is a python builtin
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 19:53:11 +0000 (16:53 -0300)]
reformatting: break long lines.
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Han-Wen Nienhuys [Wed, 23 May 2007 19:46:29 +0000 (16:46 -0300)]
Cleanups
- don't use dir (python builtin)
- use re for munging depotPath into destination
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
Simon Hausmann [Sun, 27 May 2007 13:48:01 +0000 (15:48 +0200)]
Fix creation of refs/remotes/p4/HEAD symbolic ref
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Fri, 25 May 2007 20:34:30 +0000 (22:34 +0200)]
Added git-p4 submit --trust-me-like-a-fool for the adventurous users :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Fri, 25 May 2007 17:43:38 +0000 (19:43 +0200)]
Forgot to remove this TODO item when I made --with-origin the default :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Fri, 25 May 2007 09:36:42 +0000 (11:36 +0200)]
Shortcut the case where we have no origin branch
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Fri, 25 May 2007 08:36:10 +0000 (10:36 +0200)]
Make --with-origin the default for syncing.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Fri, 25 May 2007 08:28:46 +0000 (10:28 +0200)]
Make --with-origin also work without origin :)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Fri, 25 May 2007 06:49:18 +0000 (08:49 +0200)]
Make git-p4 work with packed refs (don't use os.path.exists to check for the
existance of a ref)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Fri, 25 May 2007 06:44:41 +0000 (08:44 +0200)]
Avoid creating non-p4 branches in remotes/p4 off of remotes/origin
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 24 May 2007 20:28:28 +0000 (22:28 +0200)]
Oops, fix --with-origin to /really/ also call git fetch :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 24 May 2007 20:25:36 +0000 (22:25 +0200)]
Added support for --with-origin with multi-branch imports
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 24 May 2007 20:10:40 +0000 (22:10 +0200)]
Forgot to remove this return statement from debugging
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 24 May 2007 19:23:04 +0000 (21:23 +0200)]
Fix creating the remotes/p4 branches based on origin/* for the multi-branch import
Signed-off-by: Simon Hausmann <simon@lst.de>
Marius Storm-Olsen [Thu, 24 May 2007 12:07:55 +0000 (14:07 +0200)]
Replace \r\n with \n when importing from p4 on Windows
Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 22:24:52 +0000 (00:24 +0200)]
Load the user map from p4 only once at run-time.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Wed, 23 May 2007 21:53:14 +0000 (23:53 +0200)]
Fix multi-branch import with --silent.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 21:44:19 +0000 (23:44 +0200)]
Fix p4 execution in git-p4 rollback.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 21:40:48 +0000 (23:40 +0200)]
Catch p4 errors in rollback early enough (before deleting refs!)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 21:32:32 +0000 (23:32 +0200)]
Oops, fill the /list/ correct with the p4 exit code.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 21:27:31 +0000 (23:27 +0200)]
Don't make len(p4Cmd("p4 changes -m 1 //foo/...")) == 0 succeed when the p4 command itself failed.
When the p4 command failed write out the exit code in the returned dict.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 18:07:57 +0000 (20:07 +0200)]
Make rollback work with locally imported branches
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 23 May 2007 14:41:46 +0000 (16:41 +0200)]
Avoid calling git symbolic-ref refs/heads/p4//HEAD (double slash)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Tue, 22 May 2007 22:33:34 +0000 (00:33 +0200)]
Doc updates
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Tue, 22 May 2007 22:15:50 +0000 (00:15 +0200)]
Use refs/heads/* instead of refs/heads/p4/* for local imports
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Tue, 22 May 2007 22:07:35 +0000 (00:07 +0200)]
Added support for --max-changes=<count> to ease import debugging
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Tue, 22 May 2007 22:03:08 +0000 (00:03 +0200)]
Added support for importing multiple branches into refs/heads instead of just refs/remotes
using --import-local. Needs some further microfix but seems to work otherwise.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 21:44:24 +0000 (23:44 +0200)]
Fixes for rollback, delete branches that did not exist at the specified p4 change
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 21:25:51 +0000 (23:25 +0200)]
Fix branch detection in multi-branch imports
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 20:57:06 +0000 (22:57 +0200)]
Added a rollback command for debugging. It sets back the heads of the p4 branches to the specified p4 change number or earlier.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 09:04:26 +0000 (11:04 +0200)]
Make git-p4 submit --direct safer by also creating a git commit
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 08:08:11 +0000 (10:08 +0200)]
Detect with git-p4 submit --direct when there are no changes in the working directory
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 08:05:30 +0000 (10:05 +0200)]
Fix git symbolic-ref warning on initial clone
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 07:34:56 +0000 (09:34 +0200)]
Fix error detection with git-p4 submit when the requested depot path is not in the client view.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Mon, 21 May 2007 06:44:16 +0000 (08:44 +0200)]
Fix conversion from old style heads/p4 to remotes/p4/master
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 22:39:16 +0000 (00:39 +0200)]
Improved output for multi branch imports and noted another little todo item
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Sun, 20 May 2007 21:52:51 +0000 (23:52 +0200)]
Another (potentially life-saving) idea for submit --direct
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 21:42:22 +0000 (23:42 +0200)]
Had an idea for debugging, record it :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 21:39:40 +0000 (23:39 +0200)]
Specifying --detect-branches is now only needed for the initial clone/sync.
Afterwards it's turned on implicitly if more p4 branches than remotes/p4/master
are found.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Sun, 20 May 2007 14:55:05 +0000 (16:55 +0200)]
Added support for git-p4 submit --direct (experimental)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 14:33:21 +0000 (16:33 +0200)]
Use git format-patch and git apply --apply when extracting patches from git and
applying them to a Perforce checkout. This should make it possible to apply git
commits with binary files that cannot be handled by path.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 13:24:01 +0000 (15:24 +0200)]
Oops, not only /set/ gitdir on clone, also set it /correctly/ :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 13:15:34 +0000 (15:15 +0200)]
Fix gitdir not being set when cloning. Needed for writing the p4 users cache.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sun, 20 May 2007 08:55:54 +0000 (10:55 +0200)]
Cache the output of "p4 users" for faster syncs on high latency links.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Sat, 19 May 2007 10:05:40 +0000 (12:05 +0200)]
Removed unused variable, more cleanups
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Sat, 19 May 2007 09:54:11 +0000 (11:54 +0200)]
More cleanups and speedups for labels and branches
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Sat, 19 May 2007 09:07:32 +0000 (11:07 +0200)]
Cleanup/speed up the branch<> file split and removed change range limitation that I added
for debugging (oops).
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Sat, 19 May 2007 08:23:12 +0000 (10:23 +0200)]
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>
Simon Hausmann [Fri, 18 May 2007 20:13:26 +0000 (22:13 +0200)]
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>
Simon Hausmann [Fri, 18 May 2007 19:45:23 +0000 (21:45 +0200)]
Started rewriting the branch detection, based on "p4 branches" and "p4 branch -o foo".
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Fri, 18 May 2007 18:39:38 +0000 (20:39 +0200)]
Removed unused cache variables.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Fri, 18 May 2007 18:32:35 +0000 (20:32 +0200)]
Fix branch setup after initial clone.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Thu, 17 May 2007 20:22:26 +0000 (22:22 +0200)]
Removed todo item that is implemented :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 17 May 2007 20:17:49 +0000 (22:17 +0200)]
Added support for git-p4 sync/rebase --with-origin. See git-p4.txt for details :)
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 17 May 2007 19:18:53 +0000 (21:18 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 18:57:05 +0000 (20:57 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 18:26:58 +0000 (20:26 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 18:15:47 +0000 (20:15 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 17:44:50 +0000 (19:44 +0200)]
Removed cleantags command. It doesn't have any meaning anymore.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Thu, 17 May 2007 07:13:54 +0000 (09:13 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 07:02:45 +0000 (09:02 +0200)]
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>
Simon Hausmann [Thu, 17 May 2007 05:42:38 +0000 (07:42 +0200)]
Fixing syncing (gitdir discovery / cd) for bare repositories
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Wed, 16 May 2007 11:15:34 +0000 (13:15 +0200)]
A little todo note before I forget it :), based on a suggestion from Lars.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 16 May 2007 10:12:39 +0000 (12:12 +0200)]
Fix calling git-p4 rebase from within a subdirectory (git rebase wants to be in toplevel)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 16 May 2007 07:43:13 +0000 (09:43 +0200)]
Give a better hint if git-p4 submit fails
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Wed, 16 May 2007 07:41:26 +0000 (09:41 +0200)]
Added the possibility of skipping patches during git-p4 submit
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Simon Hausmann [Tue, 15 May 2007 21:06:43 +0000 (23:06 +0200)]
Make git-p4 work with bare repositories.
Signed-off-by: Simon Hausmann <simon@lst.de>
Simon Hausmann [Tue, 15 May 2007 14:15:26 +0000 (16:15 +0200)]
Fix git-p4 clone //depot/project (head import)
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Marius Storm-Olsen [Tue, 15 May 2007 13:51:25 +0000 (15:51 +0200)]
Make the command call silent
Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
Simon Hausmann [Tue, 15 May 2007 14:07:02 +0000 (16:07 +0200)]
Converted to unix newlines
Signed-off-by: Simon Hausmann <shausman@trolltech.com>