Simon Hausmann
4f5cf76a55
First (untested) attempt at migrating p4-git-sync into the final git-p4 script
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-19 22:25:17 +01:00
Simon Hausmann
c8c3911685
Provide a little bit of help description for the git-p4 "tools".
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-19 21:02:30 +01:00
Simon Hausmann
86949eef40
Start moving the git-p4 tools into one single script.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-19 20:59:12 +01:00
Simon Hausmann
95d27cb75d
Pass the right number of arguments to commit, fixes single-branch imports.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-19 12:04:37 +01:00
Simon Hausmann
09e16455e0
Improved the git dir detection.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-19 11:57:10 +01:00
Simon Hausmann
228d36c92b
Default to interactive syncing
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-16 13:47:46 +01:00
Simon Hausmann
f72537f97e
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>
2007-03-15 19:07:06 +01:00
Simon Hausmann
d566209e7f
Auto-detect the current git branch before submitting back to perforce.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-03-14 23:30:23 +01:00
Simon Hausmann
4d9e5fcea6
Ignore Apple resource files when importing from perforce to git.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-03-14 19:03:16 +01:00
Simon Hausmann
d7873afdf4
Be nice and use /usr/bin/env python for the git-p4 scripts
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-14 17:33:46 +01:00
Simon Hausmann
794a913a00
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>
2007-03-14 17:31:47 +01:00
Simon Hausmann
09a14fb524
Lots of bugfixes to p4-git-sync.
...
Added interactive and dry-run mode.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-13 16:36:10 +01:00
Simon Hausmann
5aba82fd50
Fix git-dir option and allow reading log substitutions from a file
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-13 09:14:45 +01:00
Simon Hausmann
0bcff6121d
First version of a new script to submit changes back to perforce from git repositories.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-12 23:00:34 +01:00
Simon Hausmann
4fe2ca17f7
Split up the cache commandline options into (command) cache and data cache.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-10 21:30:24 +01:00
Simon Hausmann
dd87020bd3
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>
2007-03-10 21:23:49 +01:00
Simon Hausmann
43cc31e8a2
More work on branch detection by implementing changeIsBranchMerge().
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-10 17:46:49 +01:00
Simon Hausmann
85a8f1ac3b
More code cleanups and preparations for more branch detection heuristics.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-10 11:46:26 +01:00
Simon Hausmann
478764bc82
Minor code cleanups.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-10 10:53:07 +01:00
Simon Hausmann
59f1d2b52d
Make the p4 data/command cache configurable through the --cache-debug commandline option.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-03-10 10:25:34 +01:00
Simon Hausmann
a0f22e996c
Fixed p4-debug file extension.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-03-10 09:49:19 +01:00
Simon Hausmann
934371385c
Changed --known-branches to take a file as argument instead of a comma separated list.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-08 21:34:40 +01:00
Simon Hausmann
3ef674bd4b
Work in progress on detecting branches.
...
Added a disk-cache p4 output so debugging imports is faster.
Added --known-branches commandline option for pre-defining branches.
Various other fixes...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-08 21:27:59 +01:00
Simon Hausmann
6392a40e5e
Adjust the output parsing of git name-rev to handle the output of the latest git version.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-03-07 19:58:54 +01:00
Simon Hausmann
5ea919de22
Don't print a plain newline at the end of the execution (avoids bogus cron error mails).
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-02-22 10:20:53 +01:00
Simon Hausmann
47e33ec082
More work in --silent support.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-22 09:22:36 +01:00
Simon Hausmann
161958cc2f
Added support for --silent so that p4-fast-export can be called from cronjobs.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-22 09:03:39 +01:00
Simon Hausmann
9c9fec3d28
Added p4 delete behavioural emulation as todo item.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-21 17:51:07 +01:00
Michael Loeffler
c750da256a
Use gunzip -c over gzcat in import-tars example.
...
Not everyone has gzcat or bzcat installed on their system, but
gunzip -c and bunzip2 -c perform the same task and are available
if the user has installed gzip support or bzip2 support.
Signed-off-by: Michael Loeffler <zvpunry@zvpunry.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-02-21 11:09:57 -05:00
Simon Hausmann
90dc3dfdc8
Fix single-branch imports by skipping the branch/merge detection correctly.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-18 01:18:22 +10:00
Simon Hausmann
f1e9b5345e
Use sets.Set() instead of set() to run also with older versions of Python.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-15 02:16:14 +10:00
Simon Hausmann
0563a4538a
Make it possible to specify the p4 changes to import through a text file (for debugging) and made various improvements to the branch/merge heuristic detection.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-14 17:13:17 +01:00
Simon Hausmann
930d3cc94e
When trying to map p4 integrations to git merges just record it as a single merge with the newest p4 change as secondary parent.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 22:05:21 +01:00
Simon Hausmann
77083daac7
Set git fast-import marks for every imported change for future use.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 21:56:46 +01:00
Simon Hausmann
53b03239aa
After marking a p4 branch as merged don't ever merge it in git again.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 21:44:02 +01:00
Simon Hausmann
dcacf8b447
More fixes in heuristic p4 branch detection based on common path components.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 21:41:45 +01:00
Simon Hausmann
766887e110
Started work on p4 branch detection (experimental!).
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 21:04:59 +01:00
Simon Hausmann
44b3add651
Code cleanups.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-12 20:28:58 +01:00
Michael Loeffler
d63ea11594
import-tars: brown paper bag fix for file mode.
...
There is a bug with this $git_mode variable which should be 0644
or 0755, but nothing else I think.
Signed-off-by: Michael Loeffler <zvpunry@zvpunry.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-02-12 12:19:45 -05:00
Simon Hausmann
12d04ca7da
Cleanups, remove unused variable.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-11 21:35:34 +01:00
Simon Hausmann
fc21f8a1da
Create lightweight git tags (using the "reset" trick) for the incremental import instead of full-blown ones. Also fix parsing the output of git name-rev for figuring out the last imported p4 change number.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-11 18:04:39 +01:00
Simon Hausmann
f7d63b0c99
Added a little helper script to remove unused tags from the perforce import.
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-02-10 10:26:03 +01:00
Simon Hausmann
fe2193183a
Changed the default git import branch from "p4" to "master".
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-10 10:05:51 +01:00
Simon Hausmann
8718f3ec9a
Avoid the excessive use of git tags for every perforce change and instead just create one git tag for the last imported change.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-10 10:05:29 +01:00
Simon Hausmann
b41507a427
Minor code cleanups.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-10 09:25:22 +01:00
Simon Hausmann
20c7bc76b9
Added a little helper script to debug the output of the p4 python interface.
...
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-02-08 23:00:19 +01:00
Shawn O. Pearce
590dd4bfd2
tar archive frontend for fast-import.
...
This is an example fast-import frontend, in less than 100 lines
of Perl. It accepts one or more tar archives on the command line,
passes them through gzcat/bzcat/zcat if necessary, parses out the
individual file headers and feeds all contained data to fast-import.
No temporary files are involved.
Each tar is treated as one commit, with the commit timestamp coming
from the oldest file modification date found within the tar.
Each tar is also tagged with an annotated tag, using the basename
of the tar file as the name of the tag.
Currently symbolic links and hard links are not handled by the
importer. The file checksums are also not verified.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-02-08 15:37:53 -05:00
Simon Hausmann
c9c527d7b6
Made the name of the git branch used for the perforce import configurable through a new --branch=<name> commandline option.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-08 15:53:11 +01:00
Simon Hausmann
7315866824
Catch io exceptions from git fast-import again and print the error message.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-08 15:45:16 +01:00
Simon Hausmann
1e30c07dfc
Fix calculation of the newest imported revision for #head imports.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-07 23:51:51 +01:00
Simon Hausmann
23efd2545b
Make specifying the revision ranges more convenient.
...
Added support for @all as revision range specifier to import all changes to a given depot path.
Also default to an import of #head if no revrange is specified.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-07 23:37:54 +01:00
Simon Hausmann
1cd573866a
Make incremental imports easier to use by storing the p4 depot path after an import in .git/config and re-using it when we're invoked again later.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-07 23:25:56 +01:00
Simon Hausmann
e3d37cf098
Fixed incremental imports by using the correct "from" command instead of "merge" with git fast-import.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-07 23:09:49 +01:00
Simon Hausmann
c4cf2d4f87
Minor cleanups and print an error message of git fast-import if it fails.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-07 22:57:01 +01:00
Simon Hausmann
6d48d12f5d
Initial support for importing a directory from Perforce at a specified revision.
...
Use p4 files //depot/path/...@revision to determine the state of the project and create a "fake" git commit from it.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-01 18:19:55 +01:00
Simon Hausmann
68f1336fe3
Code cleanups, move the code to create a commit with fast-import into a separate function out of the main loop.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-01 17:42:23 +01:00
Simon Hausmann
f16255f559
Simplify the incremental import by elimination the need for a temporary import branch.
...
It turns out that git fast-import can "resume" from an existing branch just fine.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-01 08:23:39 +01:00
Simon Hausmann
61b3cf7c47
Started working on incremental imports from Perforce.
...
Try to find the last imported p4 change number from the git tags and try to pass the right parent for commits to git fast-import.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-02-01 00:08:51 +01:00
Simon Hausmann
79799d52b2
Fix file permissions of p4-fast-export.py to be executable.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 23:09:24 +01:00
Simon Hausmann
71f7c0d0bb
Create a git tag for every changeset imported from perforce.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 23:03:01 +01:00
Simon Hausmann
214bed8239
Fixed displaying import progress by calling flush on stdout.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:47:53 +01:00
Simon Hausmann
f26037dce3
Permit calling p4-fast-export with a depot path that has the typical ... wildcard at the end.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:41:08 +01:00
Simon Hausmann
2385536282
Avoid calling fstat for every imported file (slow!) and instead read the file data first into the python process and use the length of the bytes read for the size field of git fast-import.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:38:07 +01:00
Simon Hausmann
0dd0b9d011
Ported the remaining functions that parsed p4 shell output over to the p4 python interface.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:31:28 +01:00
Simon Hausmann
a39811b46e
Instead of parsing the output of "p4 users" use the python objects of "p4 -G users".
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:19:18 +01:00
Simon Hausmann
f6148d9129
Minor code cleanups and ported some p4 interfacing code over to the p4 python mode.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 22:13:17 +01:00
Simon Hausmann
701ce87633
Changed the import mechanism to write to git fast-import through a pipe instead of having p4-fast-export write to stdout and let the caller connect it to git fast-import.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 21:54:56 +01:00
Simon Hausmann
3f2ddd47c7
Removed unused p4cat function and added helper function for the perforce python interface (p4Cmd).
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 20:48:39 +01:00
Simon Hausmann
9466d479e2
Speed up the import of individual files from Perforce into git by passing the output of "p4 print" directly to git fast-import. Also try to set the mode of the file in git correctly based on file type heuristics.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 20:16:26 +01:00
Simon Hausmann
d93ed31ac4
Some fixes to the timezone conversion between the date of a perforce change and the git commit.
...
Signed-off-by: Simon Hausmann <hausmann@kde.org>
2007-01-31 19:43:16 +01:00
Simon Hausmann
72b2f0ada3
Implemented basic support for converting the date of the perforce change to the git format. The timezone isn't correctly set up yet though.
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-01-31 16:39:46 +01:00
Simon Hausmann
06bb04454f
Slightly improved help usage output and made specifying the trailing slash for the depot path optional.
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-01-31 09:49:41 +01:00
Simon Hausmann
da96cd9e24
Added basic support for specifying the depot path to import from as well as the range of perforce changes.
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-01-31 09:39:20 +01:00
Simon Hausmann
16d6b8ab6f
Initial import of a python script to import changesets from Perforce into git.
...
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-01-31 00:16:59 +01:00