Skip to content

Commit

Permalink
git-p4: sort client views by reverse View number
Browse files Browse the repository at this point in the history
Correct view sorting to support the Perforce order,
where client views are ordered and later views
override earlier view mappings.

[pw: one test now succeeds]

Signed-off-by: Gary Gibbons <ggibbons@perforce.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Gary Gibbons authored and Junio C Hamano committed Jan 3, 2012
1 parent b10048d commit df5ed90
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 3 deletions.
11 changes: 9 additions & 2 deletions contrib/fast-import/git-p4
Original file line number Diff line number Diff line change
Expand Up @@ -1924,10 +1924,17 @@ class P4Sync(Command, P4UserMap):
else:
include = len(v)

temp[v] = (include, cv)
# store the View #number for sorting
# and the View string itself (this last for documentation)
temp[v] = (include, cv, int(k[4:]),k)

self.clientSpecDirs = temp.items()
self.clientSpecDirs.sort( lambda x, y: abs( y[1][0] ) - abs( x[1][0] ) )
# Perforce ViewNN with higher #numbers override those with lower
# reverse sort on the View #number
self.clientSpecDirs.sort( lambda x, y: y[1][2] - x[1][2] )
if self.verbose:
for val in self.clientSpecDirs:
print "clientSpecDirs: %s %s" % (val[0],val[1])

def run(self, args):
self.depotPaths = []
Expand Down
2 changes: 1 addition & 1 deletion t/t9809-git-p4-client-view.sh
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ test_expect_failure 'single file map' '
git_verify $files
'

test_expect_failure 'later mapping takes precedence (entire repo)' '
test_expect_success 'later mapping takes precedence (entire repo)' '
client_view "//depot/dir1/... //client/cli1/..." \
"//depot/... //client/cli2/..." &&
files="cli2/dir1/file11 cli2/dir1/file12
Expand Down

0 comments on commit df5ed90

Please sign in to comment.