diff options
author | Pete Wyckoff <pw@padd.com> | 2011-12-24 21:07:35 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-12-27 10:19:30 -0800 |
commit | 58c8bc7c1aa0c7cf71c524cc4531a19ef72ea706 (patch) | |
tree | ceb5533550546e2bd5774fc82b44ce26865d7c9f /contrib/fast-import | |
parent | 1471c6b1558f45fa11ad606fc9ea72261d965284 (diff) | |
download | git-58c8bc7c1aa0c7cf71c524cc4531a19ef72ea706.tar.gz git-58c8bc7c1aa0c7cf71c524cc4531a19ef72ea706.tar.xz |
git-p4: honor --changesfile option and test
When an explicit list of changes is given, it makes no sense to
use @all or @3,5 or any of the other p4 revision specifiers.
Make the code notice when this happens, instead of just ignoring
--changesfile. Test it.
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/fast-import')
-rwxr-xr-x | contrib/fast-import/git-p4 | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4 index dafc4a2c8..d0a9b0d87 100755 --- a/contrib/fast-import/git-p4 +++ b/contrib/fast-import/git-p4 @@ -2024,6 +2024,17 @@ class P4Sync(Command, P4UserMap): revision = "" self.users = {} + # Make sure no revision specifiers are used when --changesfile + # is specified. + bad_changesfile = False + if len(self.changesFile) > 0: + for p in self.depotPaths: + if p.find("@") >= 0 or p.find("#") >= 0: + bad_changesfile = True + break + if bad_changesfile: + die("Option --changesfile is incompatible with revision specifiers") + newPaths = [] for p in self.depotPaths: if p.find("@") != -1: @@ -2040,7 +2051,10 @@ class P4Sync(Command, P4UserMap): revision = p[hashIdx:] p = p[:hashIdx] elif self.previousDepotPaths == []: - revision = "#head" + # pay attention to changesfile, if given, else import + # the entire p4 tree at the head revision + if len(self.changesFile) == 0: + revision = "#head" p = re.sub ("\.\.\.$", "", p) if not p.endswith("/"): |