summaryrefslogtreecommitdiff
path: root/contrib/fast-import
AgeCommit message (Collapse)AuthorFilesLines
2011-03-23Merge branch 'pw/p4'Libravatar Junio C Hamano1-1/+3
* pw/p4: git-p4: test sync new branch git-p4: fix sync new branch regression
2011-03-16git-p4: fix sync new branch regressionLibravatar Pete Wyckoff1-1/+3
e32e00d (git-p4: better message for "git-p4 sync" when not cloned, 2011-02-19) broke another use case, that of using "git-p4 sync" to import a new branch into an existing repository. Refine the fix again, on top of the fix in ac34efc. Reported-by: Michael Horowitz <michael.horowitz@ieee.org> Signed-off-by: Pete Wyckoff <pw@padd.com> Tested-by: Michael Horowitz <michael.horowitz@ieee.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-15git-p4: Fix error message crash in P4Sync.commit.Libravatar Tor Arvid Lund1-1/+1
There is an error message that crashes the script because of an invalid ref to the non-existing "path" variable. It is almost never printed, which would explain why nobody encountered this problem before... But anyway, this oneliner fixes it. Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-15Teach git-p4 to ignore case in perforce filenames if configured.Libravatar Tor Arvid Lund1-7/+20
When files are added to perforce, the path to that file has whichever case configuration that exists on the machine of the user who added the file. What does that mean? It means that when Alice adds a file //depot/DirA/FileA.txt ... and Bob adds: //depot/dirA/FileB.txt ... we may or may not get a problem. If a user sets the config variable git-p4.ignorecase to "true", we will consider //depot/DirA and //depot/dirA to be the same directory. Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-15git-p4: Teach gitConfig method about arguments.Libravatar Tor Arvid Lund1-2/+6
With this patch, it is possible to call the gitConfig method with an optional argument string, which will be passed to the "git config" executable. For instance: gitConfig("core.ignorecase", "--bool") will ensure that you get the value "true", and won't have to check the returned value for [1, true, on, yes]. Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-13Merge branch 'pw/p4'Libravatar Junio C Hamano1-1/+1
* pw/p4: git-p4: test clone @all git-p4: fix clone @all regression
2011-03-13git-p4: fix clone @all regressionLibravatar Pete Wyckoff1-1/+1
e32e00d (git-p4: better message for "git-p4 sync" when not cloned, 2011-02-19) broke the use of the "@all" revision specifier, e.g., git-p4 clone //depot/xxx@all Fix it as per Tor Arvid's quick patch. Signed-off-by: Pete Wyckoff <pw@padd.com> Reported-by: Anatol Pomozov <anatol.pomozov@gmail.com> Based-on-patch-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-03-04Merge branch 'mh/p4'Libravatar Junio C Hamano1-1/+1
* mh/p4: git-p4 submit: prevent 'Jobs' section from being removed from p4 change log
2011-02-27Merge branch 'va/p4'Libravatar Junio C Hamano1-4/+31
* va/p4: git-p4: Add copy detection support git-p4: Improve rename detection support
2011-02-27Merge branch 'pw/p4'Libravatar Junio C Hamano1-11/+49
* pw/p4: git-p4: support clone --bare git-p4: decode p4 wildcard characters git-p4: better message for "git-p4 sync" when not cloned git-p4: reinterpret confusing p4 message git-p4: accommodate new move/delete type in p4 git-p4: add missing newline in initial import message git-p4: fix key error for p4 problem git-p4: test script
2011-02-25git-p4 submit: prevent 'Jobs' section from being removed from p4 change logLibravatar Michael Horowitz1-1/+1
In an attempt to overwrite the 'Description:' section of the p4 change log to include the git commit messages, it also overwrote the 'Jobs:' section.  This fix restores the 'Job:' section. Signed-off-by: Michael Horowitz <michael.horowitz@ieee.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: Add copy detection supportLibravatar Vitor Antunes1-0/+16
Add new config options: git-p4.detectCopies - Enable copy detection. git-p4.detectCopiesHarder - Find copies harder. The detectCopies option should be set to a true/false value. The detectCopiesHarder option should be set to true/false value. P4Submit can now process diff-tree C status and integrate files accordingly. Signed-off-by: Vitor Antunes <vitor.hda@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Acked-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: Improve rename detection supportLibravatar Vitor Antunes1-4/+15
Only open files for edit after integrating if the SHA1 of source and destination differ from each other. Add git config option detectRenames to allow permanent rename detection. This options should be set to a true/false value. Rename "detectRename" variable to "detectRenames" to make it more coherent with the description in git man pages, which always use plural. Signed-off-by: Vitor Antunes <vitor.hda@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Acked-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: support clone --bareLibravatar Pete Wyckoff1-4/+13
Just like git clone --bare, build a .git directory but no checked out files. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-By: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: decode p4 wildcard charactersLibravatar Pete Wyckoff1-0/+18
There are four wildcard characters in p4. Files with these characters can be added to p4 repos using the "-f" option. They are stored in %xx notation, and when checked out, p4 converts them back to normal. This patch does the same thing when importing into git, converting the four special characters. Without this change, the files appear with literal %xx in their names. Be careful not to produce "*" in filenames on windows. That will fail. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: better message for "git-p4 sync" when not clonedLibravatar Pete Wyckoff1-0/+2
A common error is to do "git-p4 sync" in a repository that was not initialized by "git-p4 clone". There will be no p4 refs. The error message in this case is a traceback for an assertion, which is confusing. Change it instead to explain the likely problem. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-By: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: reinterpret confusing p4 messageLibravatar Pete Wyckoff1-0/+4
Error output will look like this: glom$ git p4 clone //deopt Importing from //deopt into . Reinitialized existing Git repository in /tmp/x/.git/ Doing initial import of //deopt from revision #head into refs/remotes/p4/master p4 returned an error: //deopt/... - must refer to client glom. This particular p4 error is misleading. Perhaps the depot path was misspelled. Depot path: //deopt Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: accommodate new move/delete type in p4Libravatar Pete Wyckoff1-5/+7
562d53f (git-p4: Fix sync errors due to new server version, 2010-01-21) taught git-p4 sync to recognize the new move/delete type, but this type can also show up in an initial clone and labels output. Instead of replicating the support in three places, hoist the definition somewhere global. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-By: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: add missing newline in initial import messageLibravatar Pete Wyckoff1-1/+1
Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-By: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-21git-p4: fix key error for p4 problemLibravatar Pete Wyckoff1-1/+4
Some p4 failures result in an error, but the info['code'] is not set. These include a bad p4 executable, or a core dump from p4, and other odd internal errors where p4 fails to generate proper marshaled output. Make sure the info key exists before using it to avoid a python traceback. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-02-14Obey p4 views when using client specLibravatar Ian Wienand2-4/+51
When using the p4 client spec, this attempts to obey the client's output preferences. For example, a view like //depot/foo/branch/... //client/branch/foo/... //depot/bar/branch/... //client/branch/bar/... will result in a directory layout in the git tree of branch/ branch/foo branch/bar p4 can do various other reordering that this change doesn't support, but we should detect it and at least fail nicely. Signed-off-by: Ian Wienand <ianw@vmware.com> Acked-by: Pete Wyckoff <pw@padd.com> Acked-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-11-05Merge branch 'aw/git-p4-deletion'Libravatar Junio C Hamano1-1/+3
* aw/git-p4-deletion: Fix handling of git-p4 on deleted files
2010-10-22Fix handling of git-p4 on deleted filesLibravatar Andrew Waters1-1/+3
Signed-off-by: Andrew Waters <apwaters@googlemail.com> Tested-by: Thomas Berg <merlin66b@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-09-27perl: use "use warnings" instead of -wLibravatar Ævar Arnfjörð Bjarmason1-1/+2
Change the Perl scripts to turn on lexical warnings instead of setting the global $^W variable via the -w switch. The -w sets warnings for all code that interpreter runs, while "use warnings" is lexically scoped. The former is probably not what the authors wanted. As an auxiliary benefit it's now possible to build Git with: PERL_PATH='/usr/bin/env perl' Which would previously result in failures, since "#!/usr/bin/env perl -w" doesn't work as a shebang. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-04-03Merge branch 'rb/maint-python-path'Libravatar Junio C Hamano1-1/+1
* rb/maint-python-path: Correct references to /usr/bin/python which does not exist on FreeBSD
2010-03-24Correct references to /usr/bin/python which does not exist on FreeBSDLibravatar R. Tyler Ballance1-1/+1
On FreeBSD, Python does not ship as part of the base system but is available via the ports system, which install the binary in /usr/local/bin. Signed-off-by: R. Tyler Ballance <tyler@monkeypox.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-03-20Fix a spelling mistake in a git-p4 console messageLibravatar Benjamin C Meyer1-1/+1
Signed-off-by: Benjamin C Meyer <bmeyer@rim.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-20git-p4: fix bug in symlink handlingLibravatar Evan Powers1-3/+2
Fix inadvertent breakage from b932705 (git-p4: stream from perforce to speed up clones, 2009-07-30) in the code that strips the trailing '\n' from p4 print on a symlink. (In practice, contents is of the form ['target\n', ''].) Signed-off-by: Evan Powers <evan.powers@gmail.com> Acked-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-03Typofixes outside documentation areaLibravatar Junio C Hamano1-1/+1
begining -> beginning canonicalizations -> canonicalization comand -> command dewrapping -> unwrapping dirtyness -> dirtiness DISCLAMER -> DISCLAIMER explicitely -> explicitly feeded -> fed impiled -> implied madatory -> mandatory mimick -> mimic preceeding -> preceding reqeuest -> request substition -> substitution Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-01git-p4: Fix sync errors due to new server versionLibravatar Pal-Kristian Engstad1-1/+1
Fix sync errors due to new Perforce servers. The P4D/NTX64/2009.2/228098 (2009/12/16) server reports 'move/delete' instead of 'delete'. This causes the Perforce depot and the git repo to get out of sync. Fixed by adding the new status string. Signed-off-by: Pal-Kristian Engstad <pal_engstad@naughtydog.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-01-21fix git-p4 editor invocationLibravatar Nicolas Pitre1-1/+1
The strip() is required to remove the trailing newline character, as already done elsewhere. Signed-off-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-11-13add -i, send-email, svn, p4, etc: use "git var GIT_EDITOR"Libravatar Jonathan Nieder1-4/+1
Use the new "git var GIT_EDITOR" feature to decide what editor to use, instead of duplicating its logic elsewhere. This should make the behavior of commands in edge cases (e.g., editor names with spaces) a little more consistent. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-10-21import-tars: Add support for tarballs compressed with lzma, xzLibravatar Ingmar Vanhassel1-1/+4
Also handle the extensions .tlz and .txz, aliases for .tar.lzma and .tar.xz respectively. Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org> Liked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-10-09import-tars: Add missing closing bracketLibravatar Ingmar Vanhassel1-1/+1
This fixes an obvious syntax error that snuck in commit 7e787953: syntax error at /home/ingmar/bin//git-import-tars line 143, near "/^$/ { " syntax error at /home/ingmar/bin//git-import-tars line 145, near "} else" syntax error at /home/ingmar/bin//git-import-tars line 152, near "}" Signed-off-by: Ingmar Vanhassel <ingmar@exherbo.org> Acked-and-Tested-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-09-13Merge branch 'pk/fast-import-tars'Libravatar Junio C Hamano1-4/+46
* pk/fast-import-tars: import-tars: Allow per-tar author and commit message.
2009-09-13Merge branch 'pk/fast-import-dirs'Libravatar Junio C Hamano1-0/+416
* pk/fast-import-dirs: Add script for importing bits-and-pieces to Git.
2009-09-10git-p4: Avoid modules deprecated in Python 2.6.Libravatar Reilly Grant1-7/+5
The popen2, sha and sets modules are deprecated in Python 2.6 (sha in Python 2.5). Both popen2 and sha are not actually used in git-p4. Replace usage of sets.Set with the builtin set object. The built-in set object was added in Python 2.4 and is already used in other parts of this script, so this dependency is nothing new. Signed-off-by: Reilly Grant <reillyeon@qotw.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-09-03Add script for importing bits-and-pieces to Git.Libravatar Peter Krefting1-0/+416
Allows the user to import version history that is stored in bits and pieces in the file system, for instance snapshots of old development trees, or day-by-day backups. A configuration file is used to describe the relationship between the different files and allow describing branches and merges, as well as authorship and commit messages. Output is created in a format compatible with git-fast-import. Full documentation is provided inline in perldoc format. Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-09-03import-tars: Allow per-tar author and commit message.Libravatar Peter Krefting1-4/+46
If the "--metainfo=<ext>" option is given on the command line, a file called "<filename.tar>.<ext>" will be used to create the commit message for "<filename.tar>", instead of using "Imported from filename.tar". The author and committer of the tar ball can also be overridden by embedding an "Author:" or "Committer:" header in the metainfo file. Signed-off-by: Peter Krefting <peter@softwolves.pp.se> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-08-10git-p4: stream from perforce to speed up clonesLibravatar Luke Diamand1-67/+102
Change commit() to stream data from Perforce and into fast-import rather than reading into memory first, and then writing out. This hugely reduces the memory requirements when cloning non-incrementally. Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-06-18import-tars: support symlinksLibravatar Johannes Schindelin1-5/+12
Without this patch, symbolic links are turned into empty files. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-29Merge branch 'maint'Libravatar Junio C Hamano1-1/+2
* maint: git-svn: fix ls-tree usage with dash-prefixed paths import-zips: fix thinko
2009-03-29Merge branch 'maint-1.6.1' into maintLibravatar Junio C Hamano1-1/+2
* maint-1.6.1: import-zips: fix thinko
2009-03-29Merge branch 'maint-1.6.0' into maint-1.6.1Libravatar Junio C Hamano1-1/+2
* maint-1.6.0: import-zips: fix thinko
2009-03-29import-zips: fix thinkoLibravatar Johannes Schindelin1-1/+2
Embarrassingly, the common prefix calculation did not work properly, due to a mistake in the assignment: instead of assigning the dirname of the current file name, the dirname of the current common prefix needs to be assigned to common prefix, when the current prefix does not match the current file name. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-20import-tars: separate author from committerLibravatar Giuseppe Bilotta1-5/+11
The import-tars script is typically employed to (re)create the past history of a project from stored tars. Although assigning authorship in these cases can be a somewhat arbitrary process, it makes sense to set the author to whoever created the tars in the first place (if it's known), and (s)he can in general be different from the committer (whoever is running the script). Implement this by having separate author and committer data, making them settable from the usual GIT_* environment variables. Acked-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-03-07git-p4: remove tabs from usermap fileLibravatar Pete Wyckoff1-1/+1
Some users have tabs in their names, oddly enough. This causes problems when loading the usercache from disk, as split separates the fields on the wrong tabs. When fast-import's parse_ident() tries to parse the committer field, it is unhappy about the unbalanced <..> angle brackets. It is easy enough to convert the tabs to single spaces. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2009-02-23git-p4: avoid syncing duplicate changesLibravatar Pete Wyckoff1-5/+6
When a particular changeset affects multiple depot paths, it will appear multiple times in the output of "p4 changes". Filter out the duplicates to avoid the extra empty commits that this otherwise would create. Signed-off-by: Pete Wyckoff <pw@padd.com> Acked-by: Simon Hausmann <simon@lst.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-12-09git-p4: Fix regression in p4Where method.Libravatar Tor Arvid Lund1-3/+10
Unfortunately, I introduced a bug in commit 7f705dc36 (git-p4: Fix bug in p4Where method). This happens because sometimes the result from "p4 where <somepath>" doesn't contain a "depotFile" key, but instead a "data" key that needs further parsing. This commit should ensure that both of these cases are checked. Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2008-12-04git-p4: Fix bug in p4Where method.Libravatar Tor Arvid Lund1-1/+9
When running: p4 where //depot/SomePath/... The result can in some situations look like: //depot/SomePath/... //client/SomePath/... /home/user/p4root/SomePath/... -//depot/SomePath/UndesiredSubdir/... //client/SomePath/UndesiredSubdir/... /home/user/p4root/SomePath/UndesiredSubdir/... This depends on the users Client view. The current p4Where method will now return /home/user/p4root/SomePath/UndesiredSubdir/... which is not what we want. This patch loops through the results from "p4 where", and picks the one where the depotFile exactly matches the given depotPath (//depot/SomePath/... in this example). Signed-off-by: Tor Arvid Lund <torarvid@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>