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>
Changed --known-branches to take a file as argument instead of a comma separated list.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
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>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
More work in --silent support.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added support for --silent so that p4-fast-export can be called from cronjobs.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Added p4 delete behavioural emulation as todo item.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix single-branch imports by skipping the branch/merge detection correctly.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Use sets.Set() instead of set() to run also with older versions of Python.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
17 years agoMake it possible to specify the p4 changes to import through a text file (for debuggi...
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
Signed-off-by: Simon Hausmann <simon@lst.de>
Set git fast-import marks for every imported change for future use.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
After marking a p4 branch as merged don't ever merge it in git again.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
More fixes in heuristic p4 branch detection based on common path components.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Started work on p4 branch detection (experimental!).
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Code cleanups.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Cleanups, remove unused variable.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
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>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added a little helper script to remove unused tags from the perforce import.
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Signed-off-by: Simon Hausmann <shausman@trolltech.com>
Changed the default git import branch from "p4" to "master".
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
17 years agoAvoid the excessive use of git tags for every perforce change and instead just create...
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>
Signed-off-by: Simon Hausmann <simon@lst.de>
Minor code cleanups.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
Added a little helper script to debug the output of the p4 python interface.
Signed-off-by: Simon Hausmann <simon@lst.de>
Signed-off-by: Simon Hausmann <simon@lst.de>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Catch io exceptions from git fast-import again and print the error message.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fix calculation of the newest imported revision for #head imports.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
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>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fixed incremental imports by using the correct "from" command instead of "merge" with git fast-import.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Minor cleanups and print an error message of git fast-import if it fails.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
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>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
It turns out that git fast-import can "resume" from an existing branch just fine.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
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>
Fix file permissions of p4-fast-export.py to be executable.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Create a git tag for every changeset imported from perforce.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Fixed displaying import progress by calling flush on stdout.
Signed-off-by: Simon Hausmann <hausmann@kde.org>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>
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>
Signed-off-by: Simon Hausmann <hausmann@kde.org>