You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Carl Youngblood <ca...@gmail.com> on 2005/06/08 19:32:24 UTC

Faulty merge logic?

Forgive me if this has already been posted to this list, but I
recently came across a blog entry considering different version
control systems:

http://www.simplicidade.org/notes/archives/2004/11/evaluating_sour.html

One section especially caught my attention:

"While evaluating these systems, I developed a small test to see if
it's good enough for me:

create two branches of a project, called B1 and B2;
modify file X in B1;
in B2, rename file X to Y;
merge B1 into B2.
If after these simple steps, your Y file does not have the
modifications made in B1, the source control system is flawed, and I
just can't use it. If you are serious about source control, this is
just not acceptable.

The interesting part is that it seems Subversion fails this simple
test. I think I'm doing something wrong, I'm trying to see what, but I
can't get Subversion to do the right thing. This would remove it from
my list, and I would like to use Subversion (JabberStudio uses it a
lot now)."

Is this still true, and if so, is this a valid complaint, in your opinion?

Thanks,
Carl

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Faulty merge logic?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jun 9, 2005, at 12:56 AM, Mads Budde wrote:

> Ben,
>
> I've seen more than one post now, where you refer to issue 2282 when
> talking about true moves. My impression is that that the core  
> problem is
> not how subversion deals with deletes, but rather why subversion  
> does an
> add and delete in the first place, which is covered better in 898  
> [1] as
> far as I can see. Or did I miss something?
>
> Regards,


Yes, 2282 is about making the current add/delete user interface more  
friendly.

But you're right, the "core" problem is that we don't have true  
moves.  That's something we're working on in phases now, starting  
with adding such a feature to the repository filesystem in svn 1.3,  
and then watching API and UI changes ripple out from there.  If you  
want to watch the discussion, subscribe to the dev@ list.

(I'm somewhat excited about this, because while visiting Collabnet HQ  
this week, a few of us came up with a workable schema change to the  
repository to add this feature.  We'll be talking about it on the  
dev@ list soon.)


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Faulty merge logic?

Posted by Mads Budde <mb...@budde.us>.
Ben,

I've seen more than one post now, where you refer to issue 2282 when
talking about true moves. My impression is that that the core problem is
not how subversion deals with deletes, but rather why subversion does an
add and delete in the first place, which is covered better in 898 [1] as
far as I can see. Or did I miss something?

Regards,
Mads


1. http://subversion.tigris.org/issues/show_bug.cgi?id=898


> Subversion doesn't have true moves, it has copies and deletes, and
> the server currently doesn't broadcast copies to the client.  We're
> working on fixing it, mainly by implementing true moves.
>
> In the meantime, here's another similar issue that explains what
> you're seeing:
>
>    http://subversion.tigris.org/issues/show_bug.cgi?id=2282
>
> In other words, the server is sending a delete + add, rather than a
> move.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Faulty merge logic?

Posted by Carl Youngblood <ca...@gmail.com>.
Keep in mind I was quoting somebody else. These words were not my own. 
Thanks for your response. At least it sounds like you think it would be a 
good idea, although apparently not as high-priority as some people might 
like it to be.

On 11 Jun 2005 19:02:54 -0500, kfogel@collab.net <kf...@collab.net> wrote:
> 
> The first assertion ("I just can't use it") is not something we can
> argue with, obviously. The second assertion is mere chest-beating in
> the passive voice. We're quite serious about source control, thank
> you very much, but our priorities may not be the same as yours.
>

Re: Faulty merge logic?

Posted by kf...@collab.net.
Ben Collins-Sussman <su...@collab.net> writes:
> On Jun 8, 2005, at 12:32 PM, Carl Youngblood wrote:
> > Forgive me if this has already been posted to this list, but I
> > recently came across a blog entry considering different version
> > control systems:
> >
> > http://www.simplicidade.org/notes/archives/2004/11/
> > evaluating_sour.html
> >
> > One section especially caught my attention:
> >
> > "While evaluating these systems, I developed a small test to see if
> > it's good enough for me:
> >
> > create two branches of a project, called B1 and B2;
> > modify file X in B1;
> > in B2, rename file X to Y;
> > merge B1 into B2.
> > If after these simple steps, your Y file does not have the
> > modifications made in B1, the source control system is flawed, and I
> > just can't use it. If you are serious about source control, this is
> > just not acceptable.
> >
> > The interesting part is that it seems Subversion fails this simple
> > test. I think I'm doing something wrong, I'm trying to see what, but I
> > can't get Subversion to do the right thing. This would remove it from
> > my list, and I would like to use Subversion (JabberStudio uses it a
> > lot now)."
> >
> > Is this still true, and if so, is this a valid complaint, in your
> > opinion?
> 
> Subversion doesn't have true moves, it has copies and deletes, and
> the server currently doesn't broadcast copies to the client.  We're
> working on fixing it, mainly by implementing true moves.
> 
> In the meantime, here's another similar issue that explains what
> you're seeing:
> 
>    http://subversion.tigris.org/issues/show_bug.cgi?id=2282
> 
> In other words, the server is sending a delete + add, rather than a
> move.

This problem has nothing to do with true renames or the lack thereof.
Even after Subversion has first-class renames, this problem will still
exist.

The behavior described above is one of the many things covered by the
term "merge tracking".  The files are in different branches, and since
Subversion's merge command currently operates by name, not by object
identity, it wouldn't follow the rename.  In other words, making
renames *preserve* object identity is not the same as making changes
*follow* object identity.  Fixing this would be a fine thing, and is
on Subversion's long-term roadmap.

> > If after these simple steps, your Y file does not have the
> > modifications made in B1, the source control system is flawed, and I
> > just can't use it. If you are serious about source control, this is
> > just not acceptable.

The first assertion ("I just can't use it") is not something we can
argue with, obviously.  The second assertion is mere chest-beating in
the passive voice.  We're quite serious about source control, thank
you very much, but our priorities may not be the same as yours.

-Karl

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: Faulty merge logic?

Posted by Ben Collins-Sussman <su...@collab.net>.
On Jun 8, 2005, at 12:32 PM, Carl Youngblood wrote:

> Forgive me if this has already been posted to this list, but I
> recently came across a blog entry considering different version
> control systems:
>
> http://www.simplicidade.org/notes/archives/2004/11/ 
> evaluating_sour.html
>
> One section especially caught my attention:
>
> "While evaluating these systems, I developed a small test to see if
> it's good enough for me:
>
> create two branches of a project, called B1 and B2;
> modify file X in B1;
> in B2, rename file X to Y;
> merge B1 into B2.
> If after these simple steps, your Y file does not have the
> modifications made in B1, the source control system is flawed, and I
> just can't use it. If you are serious about source control, this is
> just not acceptable.
>
> The interesting part is that it seems Subversion fails this simple
> test. I think I'm doing something wrong, I'm trying to see what, but I
> can't get Subversion to do the right thing. This would remove it from
> my list, and I would like to use Subversion (JabberStudio uses it a
> lot now)."
>
> Is this still true, and if so, is this a valid complaint, in your  
> opinion?


Subversion doesn't have true moves, it has copies and deletes, and  
the server currently doesn't broadcast copies to the client.  We're  
working on fixing it, mainly by implementing true moves.

In the meantime, here's another similar issue that explains what  
you're seeing:

   http://subversion.tigris.org/issues/show_bug.cgi?id=2282

In other words, the server is sending a delete + add, rather than a  
move.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org