git-p4: support multiple depot paths in p4 submit

When submitting from a repository that was cloned using a client spec,
use the full list of paths when ruling out files that are outside the
view.  This fixes a bug where only files pertaining to the first path
would be included in the p4 submit.

Signed-off-by: Sam Hocevar <sam@hocevar.net>
Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Sam Hocevar
2015-12-19 09:39:39 +00:00
committed by Junio C Hamano
parent 785e70f467
commit cbc692425c

View File

@ -1458,6 +1458,8 @@ class P4Submit(Command, P4UserMap):
Remove lines in the Files section that show changes to files Remove lines in the Files section that show changes to files
outside the depot path we're committing into.""" outside the depot path we're committing into."""
[upstream, settings] = findUpstreamBranchPoint()
template = "" template = ""
inFilesSection = False inFilesSection = False
for line in p4_read_pipe_lines(['change', '-o']): for line in p4_read_pipe_lines(['change', '-o']):
@ -1470,8 +1472,13 @@ class P4Submit(Command, P4UserMap):
lastTab = path.rfind("\t") lastTab = path.rfind("\t")
if lastTab != -1: if lastTab != -1:
path = path[:lastTab] path = path[:lastTab]
if not p4PathStartsWith(path, self.depotPath): if settings.has_key('depot-paths'):
continue if not [p for p in settings['depot-paths']
if p4PathStartsWith(path, p)]:
continue
else:
if not p4PathStartsWith(path, self.depotPath):
continue
else: else:
inFilesSection = False inFilesSection = False
else: else: