> On Mon, May 13, 2013 at 12:23 PM, Andreas Krey <a.k...@gmx.de> wrote:
> > On Mon, 13 May 2013 11:32:13 +0000, Les Mikesell wrote:
> > ...
> >> Maybe it is just my misconception, but I've always thought of the
> >> difference between svn and git as being that svn conceptually tracks
> >> complete revisions although sometimes it might generate or store
> >> differences for some operations or internal storage convenience,
> >> where git tracks changesets although it often has to generate
> >> complete revisions.
> >
> > That indeed is just a misconception. git even goes to define exactly
> > how each commit (aka revision) is stored including its checksum.
> > This even though is it then going to internally store that in a dense
> > packfile format.
> 
> What it computes internally or uses as an internal storage isn't quite the 
> point.
> Svn would also always compute the differences even though
> it really only cares about the full revisions.    What does git do if
> you try to double-merge a change?  Does it know about the previous merge by
> its changeset commit id, look at the contents that are already present, or 
> just
> do it twice?

Been a while since I have really got into the git internals, but I think each 
changeset has a SHA1 hash... if a changeset with that hash is already in a 
branch merging won't do anything... there will be nothing to merge. 

That said, I don't even think you can specify in git "what" to merge it just 
merges all the changes. I think it is possible to do a cherry-pick, but I think 
that creates a diff basically and applies that to the target.

BOb



> 
> >> The nature of branches seems to relate better to
> >
> > No, the basic difference is that VCS operating on the whole tree can
> > only have branches (and thus merge info) on the whole tree either, so
> > you *can't* go like subversion does and map branches into the tree and
> > need to have them (and tags) as a separate concept.
> 
> I can see why it might be a problem to support concurrent nested branch
> changeset roots but that scenario is problematic any way you look at it.  Why
> would it be a problem to support parallel branching roots - perhaps with some
> enforcement on the source/dest top levels having some common parent?
> 
> > SVN, instead of having branches as a separate concept, also stores
> > whole trees, but instead additionally stores 'this came from there' or
> > 'that was merged here' as a separate concept.
> 
> But does 'that was merged here', really know about the commit changeset
> where the change originated?
> 
> --
>    Les Mikesell
>       lesmikes...@gmail.com

Reply via email to