Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [subversive-dev] Weird behavior of the "Compare with branch" feature

Thanks for your answer.

I wasn't aware of the three-way comparison stuff and I naively though
that it would just be a matter of re-implementing methods
SVNUtility#diffStatus().
I'm not familiar with subversive's API but I'll give it a try.

In the meantime, should I fill a new bug report or should I add
information to the bug report you pointed?


Le 03/11/2015 14:35, Alexander Gurov a écrit :
> Hi,
> 
> I did try it and this is obviously a bug in the plug-in code. And the
> reason it exists is that the compare functionality was made way before
> the SVN Java bindings got an API which allows to fetch comparison
> statuses between a working copy and the URL it is compared to.
> 
> So, next then why the direct compare between a working copy and its
> branch still won't work, though the API now exists. The compare
> functionality is actually supporting three-way comparison. I.e. we
> should still show the direction of the change (was it modified in the
> working copy or was it modified in the branch). And the diffStatus() API
> does not provide us with a way to know the direction of the change
> reported. So, there are still some manual handling needed to complete it
> the right way.
> 
> The description of the problem looks very similar to this one:
> 
> https://bugs.eclipse.org/bugs/show_bug.cgi?id=326694
> 
> And yes, I think it should be fixed and we will work on it. If you do
> have any suggestions please feel free to tell us.
> 
> P.S.
> 
> Thank you for your help with the bug diagnosis.
> 
> 
> 29.10.2015 13:01, fangebault+ml@xxxxxxxxxxxx wrote:
>> Hi,
>>
>> It turns out that the "Compare with" feature is a bit counter-intuitive
>> and misleading when used with subversive.
>> Right-clicking on a folder in eclipse to compare it with a remote branch
>> let the user think that it will show differences between the working
>> copy of this folder and the remote folder on the chosen branch.
>> It appears to be untrue. Subversive will actually compare two remote
>> folders. The left part of the comparison is not the local folder but the
>> corresponding remote folder instead.
>>
>>
>> Such scenario is harmless when the local copy is in sync with the SVN
>> repository but below I describe a simplified use case where the "Compare
>> with" is misleading and therefore can make developers make wrong
>> decisions.
>> To make it easier to read, I'll describe the use case with command
>> lines, but those can be performed from within eclipse too.
>>
>> Let's say we checkout the following project from a local SVN repository
>> file:///repo/fakeproject/trunk/ at revision 10.
>>
>>      fakeproject/ 10
>>      └── src 10
>>     └── Main.java 10
>>
>> Then we create branch /branches/mybranch while keeping the working copy
>> tracking the /trunk.
>>
>>      svn cp file:///repo/fakeproject/trunk \
>>             file:///repo/fakeproject/branches/mybranch
>>
>> Then we modify Main.java and commit it (to /trunk)
>>
>>      echo "// important modification" >> src/Main.java
>>      svn commit -m "bug fixed" src/Main.java
>>
>> The working copy now looks like this in eclipse:
>>
>>      fakeproject/ 10
>>      └── src 10
>>     └── Main.java 12
>>
>>  From now on, if we right-click on src/ and select "Compare with >
>> Branch... > mybranch", a popup says: "There are no differences between
>> the selected inputs". But we know that there is actually a difference in
>> at least on file under this folder.
>> This is misleading because the user probably expects the same behavior
>> as this command line:
>>
>>      svn diff src/ file:///repo/fakeproject/branches/mybranch/src/
>>
>> What is happening instead is something equivalent to this:
>>
>>      svn diff file:///repo/fakeproject/trunk/src@10 \
>>               file:///repo/fakeproject/branches/mybranch/src/@12
>>
>>
>> I would be happy to work on fixing this behavior but first I'd like to
>> have feedback from the community about this.
>>
>>
> 
> 


-- 
Florent Angebault
Linagora - Support OSSA
https://www.08000linux.com/


Back to the top