Re: [PATCH] git-svn: support rebase --preserve-merges

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-Off-By: Steven Walter <stevenrwalter@xxxxxxxxx>

On Tue, May 15, 2012 at 8:09 AM, Avishay Lavie <avishay.lavie@xxxxxxxxx> wrote:
> (Adding previous authors of git-svn.perl)
>
> ---------- Forwarded message ----------
> From: Avishay Lavie <avishay.lavie@xxxxxxxxx>
> Date: Tue, May 15, 2012 at 12:09 PM
> Subject: PATCH: git-svn: support rebase --preserve-merges
> To: git@xxxxxxxxxxxxxxx
>
>
> From: Avishay Lavie <avishay.lavie@xxxxxxxxx>
> Date: Tue, 15 May 2012 11:45:50 +0300
> Subject: [PATCH] git-svn: support rebase --preserve-merges
>
> When git svn rebase is performed after an unpushed merge, the
> rebase operation follows both parents and replays both the user's
> local commits and those from the merged branch. This is usually
> not the intended behavior.
> This patch adds support for the --preserve-merges/-p flag which
> allows for a better workflow by re-applying merge commits as merges.
>
> Signed-off-by: Avishay Lavie <avishay.lavie@xxxxxxxxx>
> ---
>  Documentation/git-svn.txt |    2 ++
>  git-svn.perl              |    4 +++-
>  2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt
> index 34ee785..0d52997 100644
> --- a/Documentation/git-svn.txt
> +++ b/Documentation/git-svn.txt
> @@ -572,6 +572,8 @@ config key: svn.repackflags
>  --merge::
>  -s<strategy>::
>  --strategy=<strategy>::
> +-p::
> +--preserve-merges::
>        These are only used with the 'dcommit' and 'rebase' commands.
>  +
>  Passed directly to 'git rebase' when using 'dcommit' if a
> diff --git a/git-svn.perl b/git-svn.perl
> index ca038ec..e86d60b 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -84,7 +84,7 @@ my ($_stdin, $_help, $_edit,
>        $_message, $_file, $_branch_dest,
>        $_template, $_shared,
>        $_version, $_fetch_all, $_no_rebase, $_fetch_parent,
> -       $_merge, $_strategy, $_dry_run, $_local,
> +       $_merge, $_strategy, $_preserve_merges, $_dry_run, $_local,
>        $_prefix, $_no_checkout, $_url, $_verbose,
>        $_git_format, $_commit_url, $_tag, $_merge_info, $_interactive);
>  $Git::SVN::_follow_parent = 1;
> @@ -233,6 +233,7 @@ my %cmd = (
>                          'local|l' => \$_local,
>                          'fetch-all|all' => \$_fetch_all,
>                          'dry-run|n' => \$_dry_run,
> +                         'preserve-merges|p' => \$_preserve_merges
>                          %fc_opts } ],
>        'commit-diff' => [ \&cmd_commit_diff,
>                           'Commit a diff between two trees',
> @@ -1570,6 +1571,7 @@ sub rebase_cmd {
>        push @cmd, '-v' if $_verbose;
>        push @cmd, qw/--merge/ if $_merge;
>        push @cmd, "--strategy=$_strategy" if $_strategy;
> +       push @cmd, "--preserve-merges" if $_preserve_merges;
>        @cmd;
>  }
>
> --
> 1.7.9.msysgit.0



-- 
-Steven Walter <stevenrwalter@xxxxxxxxx>
"The rotter who simpers that he sees no difference between the power
of the dollar and the power of the whip, ought to learn the difference
on his own hide."
    -Francisco d'Anconia, Atlas Shrugged
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]