summaryrefslogtreecommitdiff
path: root/contrib/fast-import
AgeCommit message (Collapse)AuthorFilesLines
2007-09-18contrib/fast-import: add perl version of simple exampleLibravatar Jeff King1-0/+64
This is based on the git-import.sh script, but is a little more robust and efficient. More importantly, it should serve as a quick template for interfacing fast-import with perl scripts. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-09-18contrib/fast-import: add simple shell exampleLibravatar Nguyen Thai Ngoc Duy1-0/+38
This example just puts a directory under git control. It is significantly slower than using the git tools directly, but hopefully shows a bit how fast-import works. [jk: added header comments] Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-09-03git-p4: Added support for automatically importing newly appearing perforce ↵Libravatar Simon Hausmann1-2/+74
branches. If a change in a p4 "branch" appears that hasn't seen any previous commit and that has a known branch mapping we now try to import it properly. First we find the p4 change of the source branch that the new p4 branch is based on. Then we using git rev-list --bisect to locate the corresponding git commit to that change. Finally we import all changes in the new p4 branch up to the current change and resume with the regular import. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Cleanup; moved the (duplicated) code for turning a branch into a git ↵Libravatar Simon Hausmann1-17/+11
ref (for example foo -> refs/remotes/p4/<project>/foo) into a separate method. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Cleanup; moved the code for the initial #head or revision import ↵Libravatar Simon Hausmann1-42/+45
into a separate function, out of P4Sync.run. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Cleanup; Turn self.revision into a function local variable (it's not ↵Libravatar Simon Hausmann1-9/+9
used anywhere outside the function). Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Cleanup; moved the code to import a list of p4 changes using ↵Libravatar Simon Hausmann1-69/+71
fast-import into a separate member function of P4Sync. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Cleanup; moved the code for getting a sorted list of p4 changes for ↵Libravatar Simon Hausmann1-9/+14
a list of given depot paths into a standalone method. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: After submission to p4 always synchronize from p4 again (into ↵Libravatar Simon Hausmann1-2/+9
refs/remotes). Whether to rebase HEAD or not is still left as question to the end-user. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-09-03git-p4: Always call 'p4 sync ...' before submitting to Perforce.Libravatar Simon Hausmann1-3/+2
Acked-by: Marius Storm-Olsen <marius@trolltech.com> Acked-by: Thiago Macieira <thiago@kde.org>
2007-08-24git-p4: Fix warnings about non-existant refs/remotes/p4/HEAD ref when ↵Libravatar Simon Hausmann1-1/+1
running git-p4 sync the first time after a git clone. Don't create the p4/HEAD symbolic ref if p4/master doesn't exist yet. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-24git-p4: Make 'git-p4 branches' work after an initial clone with git clone ↵Libravatar Simon Hausmann1-49/+55
from an origin-updated repository. After a clone with "git clone" of a repository the p4 branches are only in remotes/origin/p4/* and not in remotes/p4/*. Separate the code for detection and creation out of the P4Sync command class into standalone methods and use them from the P4Branches command. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-13git-p4: Fix the sorting of changelists when cloning a Perforce repository.Libravatar Reece H. Dunn1-1/+1
When performing a git-p4 clone operation on a Perforce repository, where the changelists change in order of magnitude (e.g. 100 to 1000), the set of changes to import from is not sorted properly. This is because the data in the list is strings not integers. The other place where this is done already converts the value to an integer, so it is not affected. Acked-by: Simon Hausmann <simon@lst.de>
2007-08-08git-p4: Fix git-p4 submit to include only changed files in the perforce ↵Libravatar Simon Hausmann1-6/+30
submit template. Parse the files section in the "p4 change -o" output and remove lines with file changes in unrelated depot paths. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-08git-p4: Fix support for symlinks.Libravatar Simon Hausmann1-5/+9
Detect symlinks as file type, set the git file mode accordingly and strip off the trailing newline in the p4 print output. Make the mode handling a bit more readable at the same time. Signed-off-by: Simon Hausmann <simon@lst.de> Acked-by: Brian Swetland <swetland@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-08-02Fix style nit in Python slicing.Libravatar Han-Wen Nienhuys1-3/+3
Python slices start at 0 by default. Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: Simon Hausmann <simon@lst.de>
2007-08-02Sort output of "p4 change" in incremental import before furtherLibravatar Han-Wen Nienhuys1-1/+1
processing P4 change outputs the changes sorted for each directory separately. We want the global ordering on the changes, hence we sort. Signed-off-by: Han-Wen Nienhuys <hanwen@google.com> Signed-off-by: Simon Hausmann <simon@lst.de>
2007-07-25git-p4: Fix p4 user cache population on Windows.Libravatar Simon Hausmann1-1/+2
Fall back to USERPROFILE if HOME isn't set. Signed-off-by: Simon Hausmann <shausman@trolltech.com> Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2007-07-18git-p4: Cleanup, used common function for listing imported p4 branchesLibravatar Simon Hausmann1-21/+5
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-07-18git-p4: Fix upstream branch detection for submit/rebase with multiple branches.Libravatar Simon Hausmann1-12/+17
Don't use git name-rev to locate the upstream git-p4 branch for rebase and submit but instead locate the branch by comparing the depot paths. name-rev may produce results like wrongbranch~12 as it uses the first match. Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
2007-07-18git-p4: Cleanup, make listExistingP4Branches a global function for later use.Libravatar Simon Hausmann1-0/+23
Signed-off-by: Simon Hausmann <simon@lst.de> Signed-off-by: Marius Storm-Olsen <marius@trolltech.com>
2007-07-17git-p4: input to "p4 files" by stdin instead of argumentsLibravatar Scott Lamb1-21/+7
This approach, suggested by Alex Riesen, bypasses the need for xargs-style argument list handling. The handling in question looks broken in a corner case with SC_ARG_MAX=4096 and final argument over 96 characters. Signed-off-by: Scott Lamb <slamb@slamb.org> Signed-off-by: Simon Hausmann <simon@lst.de>
2007-07-17git-p4: use subprocess in p4CmdListLibravatar Scott Lamb1-5/+18
This allows bidirectional piping - useful for "-x -" to avoid commandline arguments - and is a step toward bypassing the shell. Signed-off-by: Scott Lamb <slamb@slamb.org> Signed-off-by: Simon Hausmann <simon@lst.de>
2007-07-14Fix git-p4 on Windows to not use the Posix sysconf function.Libravatar Marius Storm-Olsen1-1/+5
Add condition for Windows, since it doesn't support the os.sysconf module. We hardcode the commandline limit to 2K, as that should work on most Windows platforms. Signed-off-by: Marius Storm-Olsen <marius@trolltech.com> Acked-by: Simon Hausmann <simon@lst.de> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
2007-06-22Import branch 'git-p4' of git://repo.or.cz/fast-exportLibravatar Shawn O. Pearce3-0/+1737
Simon has asked that the git.git project include the git-p4 project as at least a contrib/fast-import within git.git. I think it makes a lot of sense, as git-p4 nicely complements the only other in-tree fast-import user: import-tars.perl. git-p4 is offered under the MIT license by its authors.
2007-06-22Make it possible to specify the HEAD for the internal ↵Libravatar Simon Hausmann1-2/+2
findUpstreamBranchPoint function. This isn't used right now in git-p4 but I use it in an external script that loads git-p4 as module. Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-06-20Added git-p4 branches command that shows the mapping of perforce depot paths ↵Libravatar Simon Hausmann1-1/+27
to imported git branches. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-17Warn about conflicting p4 branch mappings and use the first one found.Libravatar Simon Hausmann1-0/+6
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-17Fix the branch mapping detection to be independent from the order of the "p4 ↵Libravatar Simon Hausmann1-3/+13
branches" output. Collect "unknown" source branches separately and register them at the end. Also added a minor speed up to splitFilesIntoBranches by breaking out of the loop through all branches when it's safe. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-16git-p4 fails when cloning a p4 depo.Libravatar Benjamin Sergeant1-3/+17
A perforce command with all the files in the repo is generated to get all the file content. Here is a patch to break it into multiple successive perforce command who uses 4K of parameter max, and collect the output for later. It works, but not for big depos, because the whole perforce depo content is stored in memory in P4Sync.run(), and it looks like mine is bigger than 2 Gigs, so I had to kill the process. [Simon: I added the bit about using SC_ARG_MAX, as suggested by Han-Wen] Signed-off-by: Benjamin Sergeant <bsergean@gmail.com> Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-16Fix initial multi-branch import.Libravatar Simon Hausmann1-0/+1
The list of existing p4 branches in git wasn't initialized. Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-06-12Only use double quotes on WindowsLibravatar Marius Storm-Olsen1-1/+1
Signed-off-by: Marius Storm-Olsen <mstormo_git@storm-olsen.com>
2007-06-12Fix git-p4 rebase to detect the correct upstream branch instead of ↵Libravatar Simon Hausmann1-2/+10
unconditionally always rebasing on top of remotes/p4/master Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-06-12Moved the code from git-p4 submit to figure out the upstream branch pointLibravatar Simon Hausmann1-19/+26
into a separate helper method. Signed-off-by: Simon Hausmann <shausman@trolltech.com>
2007-06-11git-p4 submit: Fix missing quotes around p4 commands to make them work with ↵Libravatar Simon Hausmann1-3/+3
spaces in filenames Noticed by Alex Riesen Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11Mention remotes/p4/master also in the documentation.Libravatar Simon Hausmann1-3/+3
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11Provide some information for single branch imports where the commits goLibravatar Simon Hausmann1-1/+4
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11git-p4: check for existence of repo dir before trying to createLibravatar Kevin Green1-1/+2
When using git-p4 in this manner: git-p4 clone //depot/path/project myproject If "myproject" already exists as a dir, but not a valid git repo, it fails to create the directory. Signed-off-by: Kevin Green <Kevin.Green@morganstanley.com>
2007-06-11Write out the options tag in the log message of imports only if we actually haveLibravatar Simon Hausmann1-6/+5
options Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11Fix support for explicit disabling of syncing with the originLibravatar Simon Hausmann1-0/+2
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11Fix depot-paths encoding for multi-path imports (don't split up ↵Libravatar Simon Hausmann1-1/+1
//depot/path/foo) Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-11Fix project name guessingLibravatar Simon Hausmann1-1/+6
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-10Fix updating/creating remotes/p4/* heads from origin/p4/*Libravatar Simon Hausmann1-4/+6
Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-10Fixed the check to make sure to exclude the HEAD symbolic refs when updatingLibravatar Simon Hausmann1-1/+1
the remotes/p4 branches from origin. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-08also strip p4/ from local imports.Libravatar Han-Wen Nienhuys1-3/+3
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
2007-06-08Merge branch 'master' of git://repo.or.cz/fast-exportLibravatar Han-Wen Nienhuys1-32/+57
2007-06-08print error message when p4 print fails (eg. due to permission problems)Libravatar Han-Wen Nienhuys1-0/+5
Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
2007-06-08Only get the expensive branch mapping from the p4 server when notLibravatar Simon Hausmann1-5/+5
syncing with the help of an origin remote (which we instead then use to get new branches from). Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-07Make git-p4 submit detect the correct reference (origin) branch whenLibravatar Simon Hausmann1-14/+24
working with multi-branch imports. Signed-off-by: Simon Hausmann <simon@lst.de>
2007-06-07Make clone behave like git clone by default again.Libravatar Simon Hausmann1-0/+5
Signed-off-by: Simon Hausmann <simon@lst.de>