[Svnmerge] [PATCH] Add an option to ignore ancestry

Daniel Rall dlr at collab.net
Mon Dec 11 18:22:14 PST 2006


I haven't tested it out yet, but this patch looks good.  Unless
someone beats me to it, I plan on committing it to trunk RSN.

- Dan

On Fri, 08 Dec 2006, Pazu wrote:

> The following patch adds an option to pass '--ignore-ancestry' when calling 'svn
> merge'.
> 
> Cheers,
> 
> -- Pazu
> 
> --- svnmerge-old    2006-12-07 20:49:16.000000000 -0200
> +++ svnmerge    2006-12-08 10:54:42.000000000 -0200
> @@ -1116,6 +1116,7 @@
> 
>      blocked_revs = get_blocked_revs(branch_dir, opts["source-path"])
>      merged_revs = opts["merged-revs"]
> +    ignore_ancestry = opts["ignore-ancestry"]
> 
>      # Show what we're doing
>      if opts["verbose"]:  # just to avoid useless calculations
> @@ -1128,6 +1129,8 @@
>              report('memorizing reflected revision(s): %s' % reflected_revs)
>          if blocked_revs & revs:
>              report('skipping blocked revisions(s): %s' % (blocked_revs & revs))
> +        if ignore_ancestry:
> +            report('ignoring ancestry')
> 
>      # Compute final merge set.
>      revs = revs - merged_revs - blocked_revs - reflected_revs - phantom_revs
> @@ -1163,8 +1166,8 @@
> 
>          if not record_only:
>              # Do the merge
> -            svn_command("merge -r %d:%d %s %s" % \
> -                        (start - 1, end, opts["source-url"], branch_dir))
> +            svn_command("merge %s-r %d:%d %s %s" % \
> +                        (ignore_ancestry and "--ignore-ancestry " or "", start 
> 
>      # Write out commit message if desired
>      if opts["commit-file"]:
> @@ -1289,6 +1292,7 @@
>          error(err_str)
> 
>      record_only = opts["record-only"]
> +    ignore_ancestry = opts["ignore-ancestry"]
> 
>      if record_only:
>          report('recording rollback of revision(s) %s from "%s"' %
> @@ -1307,8 +1311,8 @@
>      for start, end in rollback_intervals:
>          if not record_only:
>              # Do the merge
> -            svn_command("merge -r %d:%d %s %s" % \
> -                        (end, start - 1, opts["source-url"], branch_dir))
> +            svn_command("merge %s-r %d:%d %s %s" % \
> +                        (ignore_ancestry and "--ignore-ancestry " or "", end, s
> 
>      # Write out commit message if desired
>      # calculate the phantom revs first
> @@ -1804,6 +1808,9 @@
>      which should not be merged, use '%s block'.""" % (NAME, NAME),
>      [
>          "-b", "-f", "-r", "-S", "-M", # import common opts
> +        Option("-I", "--ignore-ancestry",
> +           default=False,
> +           help="pass '--ignore-ancestry' to svn merge"),
>      ]),
> 
>      "block": (action_block,
> 
> 
> _______________________________________________
> Svnmerge mailing list
> Svnmerge at orcaware.com
> http://www.orcaware.com/mailman/listinfo/svnmerge
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
URL: </pipermail/svnmerge/attachments/20061212/712c7bd5/attachment-0001.pgp>


More information about the Svnmerge mailing list