Re: [PATCH v2] git-p4: avoid syncing duplicate changes
From: Simon Hausmann <hidden>
Date: 2016-06-15 22:46:16
On Wednesday 18 February 2009 Pete Wyckoff, wrote:
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 <redacted>
Acked-by: Simon Hausmann <redacted> Nice patch, thanks :) Simon
quoted hunk ↗ jump to hunk
Switched to a dictionary to avoid the quadratic behavior, as pointed out by Simon. contrib/fast-import/git-p4 | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-)diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4 index a85a7b2..3832f60 100755 --- a/contrib/fast-import/git-p4 +++ b/contrib/fast-import/git-p4@@ -442,13 +442,14 @@ def p4ChangesForPaths(depotPaths, changeRange): output = p4_read_pipe_lines("changes " + ' '.join (["%s...%s" % (p,
changeRange)
for p in
depotPaths]))
- changes = []
+ changes = {}
for line in output:
- changeNum = line.split(" ")[1]
- changes.append(int(changeNum))
+ changeNum = int(line.split(" ")[1])
+ changes[changeNum] = True
- changes.sort()
- return changes
+ changelist = changes.keys()
+ changelist.sort()
+ return changelist
class Command:
def __init__(self):
--
1.6.0.6