Re: [PATCH v2] git-p4: avoid syncing duplicate changes
On Wednesday 18 February 2009 Pete Wyckoff, wrote:
Show 6 quoted lines
> 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>
Nice patch, thanks :)
Simon
Show 12 quoted lines
> 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, > for p in
Show 21 quoted lines
>
> - 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
>
>