All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Bash <bash@genarts.com>
To: Jakub Narebski <jnareb@gmail.com>
Cc: Will Palmer <wmpalmer@gmail.com>,
	Ramkumar Ramachandra <artagnon@gmail.com>,
	Matt Stump <mstump@goatyak.com>,
	git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>,
	David Michael Barr <david.barr@cordelta.com>,
	Sverre Rabbelier <srabbelier@gmail.com>,
	Tomas Carnecky <tom@dbservice.com>
Subject: Re: Converting to Git using svn-fe (Was: Speeding up the initial git-svn fetch)
Date: Thu, 21 Oct 2010 19:26:52 -0400 (EDT)	[thread overview]
Message-ID: <4258434.537707.1287703612372.JavaMail.root@mail.hq.genarts.com> (raw)
In-Reply-To: <201010220049.33344.jnareb@gmail.com>

----- Original Message -----
> From: "Jakub Narebski" <jnareb@gmail.com>
> To: "Stephen Bash" <bash@genarts.com>
> Sent: Thursday, October 21, 2010 6:49:32 PM
> Subject: Re: Converting to Git using svn-fe (Was: Speeding up the initial git-svn fetch)
> 
> Ah, I understand now that 'svn merge' (which is rather like 'cvs
> update')
> can be used for cherry picking.
> 
> Sidenote: in Git cherry picking picks up change and applies it on top
> of current branch as one would apply a patch.

Yes.

> This is quite different
> from merge, where you find comon ancestor and then perform 3-way merge
> (ours, theirs, ancestor). 

Yes.

> Is merging in Subversion using 3-way merge
> (like 'cvs update -j ... -j ...' is), or re-applying changes?

Appears to the be 3-way merge if I'm reading the SVN archives correctly:
  "It's a basic diff3 algorithm. 'man diff3' to learn about it and play 
   with GNU's implementation of diff3."
http://svn.haxx.se/users/archive-2005-03/1232.shtml

So my *guess* is they derive a common ancestor from their copy information, but I'm sure someone else more knowledgable could say more about that.

> > > I have read some documentation about svn:mergeinfo property:
> > > http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html
> >
> > I guess this the first time I've read the 1.5 version of the SVN
> > Book.
> > This has consequences below...
> 
> Errr... what consequences? a:b vs a-b being closed (inclusive) or open
> (exclusive) from one or other end?

No, just that post-1.5 merges do actually start to look more like Git merges.

> > Back to the task at hand... having read the 1.5 SVN docs, I have no
> > idea how this works now (big caveat!!!), but prior to 1.5 M1 would
> > have been
> >
> >   svn switch svn://path/to/foo
> >   svn merge -ra:b svn://path/to/bar destination-path
> >
> > which is "Take the changes introduced in revisions a through b, and
> > apply them to the destination-path". This is why I think of SVN
> > merges as cherry-picks -- I was allowed to specify exactly what
> > changesets I wanted merge to work on.
> 
> On one hand side you "were allowed to specify exactly what changesets
> you wanted to merge to work on", on the other hand side you *had* to
> specify what changesets etc.

My point is because the user was required to specify the revisions to merge, I don't think an automated tool (i.e. the mapper) can make assumptions about what was actually merged in any given revision.

> > To truly illustrate this, consider a' is in between a and b:
> >
> > ---1---B---2---3-------M1--4---5---M2 <-- foo
> >         \              /           /
> >          \-a---a'---b-/-----c---d-/ <-- bar
> >
> > I could
> >
> >   svn switch svn://path/to/foo
> >   svn merge -ra':b svn://path/to/bar destination-path
> >
> > and "a" would never be merged back to foo.
> 
> Such merge would be hard to represent in Git, I think.

I agree.
 
Thanks,
Stephen

  reply	other threads:[~2010-10-21 23:27 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-13 15:44 Speeding up the initial git-svn fetch Matt Stump
2010-10-13 16:02 ` Stephen Bash
2010-10-13 17:47   ` Matt Stump
2010-10-13 18:18     ` Stephen Bash
2010-10-14 16:22     ` Converting to Git using svn-fe (Was: Speeding up the initial git-svn fetch) Stephen Bash
2010-10-14 16:34       ` Jonathan Nieder
2010-10-14 20:07         ` Sverre Rabbelier
2010-10-15 14:50           ` Stephen Bash
2010-10-15 23:39             ` Sverre Rabbelier
2010-10-16  0:16               ` Stephen Bash
2010-10-17  2:25                 ` Sverre Rabbelier
2010-10-17  3:33                   ` David Michael Barr
2010-10-18  5:17       ` Ramkumar Ramachandra
2010-10-18  7:31         ` Jonathan Nieder
2010-10-18 16:38           ` Ramkumar Ramachandra
2010-10-18 16:46             ` Sverre Rabbelier
2010-10-18 16:56               ` Jonathan Nieder
2010-10-18 17:16                 ` Ramkumar Ramachandra
2010-10-18 17:18                 ` Sverre Rabbelier
2010-10-18 17:28                   ` Jonathan Nieder
2010-10-18 18:10                     ` Sverre Rabbelier
2010-10-18 18:13                       ` Jonathan Nieder
2010-10-18 18:20                         ` Sverre Rabbelier
2010-10-18 18:25                           ` Jonathan Nieder
2010-10-18 18:35                             ` Sverre Rabbelier
2010-10-18 19:33                               ` Jonathan Nieder
2010-10-19  3:08                             ` Ramkumar Ramachandra
2010-10-19  0:40                           ` Stephen Bash
2010-10-19  1:42         ` Stephen Bash
2010-10-19  6:42           ` Ramkumar Ramachandra
2010-10-19 13:33             ` Stephen Bash
2010-10-19 14:28               ` David Michael Barr
2010-10-19 14:57                 ` Stephen Bash
2010-10-20  8:39             ` Will Palmer
2010-10-20 11:59               ` Jakub Narebski
2010-10-20 13:42                 ` Will Palmer
2010-10-20 20:44                   ` Jakub Narebski
2010-10-21  1:54                     ` mrevilgnome
2010-10-21  8:16                       ` Jakub Narebski
2010-10-21 13:49                         ` Stephen Bash
2010-10-21  9:08                     ` Will Palmer
2010-10-21 14:00                       ` Stephen Bash
2010-10-21 18:37                         ` Jakub Narebski
2010-10-21 21:27                           ` Stephen Bash
2010-10-21 22:49                             ` Jakub Narebski
2010-10-21 23:26                               ` Stephen Bash [this message]
2010-10-22 10:38                                 ` Jakub Narebski
2010-10-21 15:52                       ` Jakub Narebski
2010-10-21 16:16                         ` Jonathan Nieder
2010-10-20 14:05               ` Ramkumar Ramachandra
2010-10-20 14:21               ` Stephen Bash
2010-10-20 16:56                 ` Ramkumar Ramachandra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4258434.537707.1287703612372.JavaMail.root@mail.hq.genarts.com \
    --to=bash@genarts.com \
    --cc=artagnon@gmail.com \
    --cc=david.barr@cordelta.com \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    --cc=jrnieder@gmail.com \
    --cc=mstump@goatyak.com \
    --cc=srabbelier@gmail.com \
    --cc=tom@dbservice.com \
    --cc=wmpalmer@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.