You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Kai Behncke <ka...@uni-osnabrueck.de> on 2016/02/09 07:48:59 UTC

Question to svn merge (merge just parts of a diff)

Dear users,

I`m quite new to svn. I would like to know it the following in svn is 
possible:



I have in (let`s say Revision 2) a file, that I have changed onetime (I 
deleted "B"), with the following content now:
A
C
D

Then, in Revision 3 an automatic update occurs. The new file has the 
content:
A
B
E

...that means that some changes, that I made, are overwritten now. But 
that should not be.....


A diff between 2 and 3 would show someting like:
A
-C
-D
+B
+E

Is there a possibility to do (for Revision 4) a "svn merge" to get a new 
file, that:

* "knows" that B has been deleted before, so it will not be reintegrated
*  does not delete  C and D (I would like to declare s.th. like: Don`t 
delete anything that has been added in a former revision)
* integrates E (as a new entry, that has not been in any former version)

so that a result like:
A
C
D
E

...comes out?
What I mean is: Is it possible to "have a look to a diff" and then 
analyze automatically by the system the single-diff parts
to set some rules if the single diff-parts should be integrated or not?

Thank you very much, Kai
-- 
------------------------
Dr. Kai Behncke
Zentrum für Informationsmanagement und virtuelle Lehre
Raum 42/06, Heger-Tor-Wall 12, 49074 Osnabrück
Telefon: +49 (0)541/969-6505
http://www.virtuos.uni-osnabrueck.de

Re: Question to svn merge (merge just parts of a diff)

Posted by Kai Behncke <ka...@uni-osnabrueck.de>.
Hi Bert,

first of all thank you for your response.

The following is exactly my case:
"If you have local changes, and then an update comes in with changes, 
you have a different situation. In that case we start a merge operation, 
that may or may not complete automatically depending on the combination 
of local and remote changes. You can even configure your own 3-way-merge 
tool to handle this merge step by your own tool in the config file."

Sorry, what do you mean with that? I can handle it by an own tool? You 
mean an own script?

Best regards, Kai

Am 09.02.2016 um 11:27 schrieb Bert Huijben:
>
>
>> -----Original Message-----
>> From: Kai Behncke [mailto:kai.behncke@uni-osnabrueck.de]
>> Sent: dinsdag 9 februari 2016 07:49
>> To: users@subversion.apache.org
>> Subject: Question to svn merge (merge just parts of a diff)
>>
>> Dear users,
>>
>> I`m quite new to svn. I would like to know it the following in svn is
>> possible:
>>
>>
>>
>> I have in (let`s say Revision 2) a file, that I have changed onetime (I
>> deleted "B"), with the following content now:
>> A
>> C
>> D
>>
>> Then, in Revision 3 an automatic update occurs. The new file has the
>> content:
>> A
>> B
>> E
>>
>> ...that means that some changes, that I made, are overwritten now. But
>> that should not be.....
>
> If all these versions were just committed and updated via the repository, this is the intended behavior and there is nothing you can do about it. If on update the local file is unmodified, the file is replaced by the new version. I can't think of a version management system that does this differently. No merging happens in this situation
>
> If you have local changes, and then an update comes in with changes, you have a different situation. In that case we start a merge operation, that may or may not complete automatically depending on the combination of local and remote changes. You can even configure your own 3-way-merge tool to handle this merge step by your own tool in the config file.
>
>
>>
>>
>> A diff between 2 and 3 would show someting like:
>> A
>> -C
>> -D
>> +B
>> +E
>
> If everything is committed, then this is unrelated information. It is local modified vs unmodified that handles the first step.
>
> Otherwise updates that skip revisions aren't possible, etc. etc.
>
>
> I think you need a more complete sample, perhaps even as a pseudo-script to describe what you really want to ask.
>
> 	Bert
>
>>
>> Is there a possibility to do (for Revision 4) a "svn merge" to get a new
>> file, that:
>>
>> * "knows" that B has been deleted before, so it will not be reintegrated
>> *  does not delete  C and D (I would like to declare s.th. like: Don`t
>> delete anything that has been added in a former revision)
>> * integrates E (as a new entry, that has not been in any former version)
>>
>> so that a result like:
>> A
>> C
>> D
>> E
>>
>> ...comes out?
>> What I mean is: Is it possible to "have a look to a diff" and then
>> analyze automatically by the system the single-diff parts
>> to set some rules if the single diff-parts should be integrated or not?
>>
>> Thank you very much, Kai
>> --
>> ------------------------
>> Dr. Kai Behncke
>> Zentrum für Informationsmanagement und virtuelle Lehre
>> Raum 42/06, Heger-Tor-Wall 12, 49074 Osnabrück
>> Telefon: +49 (0)541/969-6505
>> http://www.virtuos.uni-osnabrueck.de
>

-- 
------------------------
Dr. Kai Behncke
Zentrum für Informationsmanagement und virtuelle Lehre
Raum 42/06, Heger-Tor-Wall 12, 49074 Osnabrück
Telefon: +49 (0)541/969-6505
http://www.virtuos.uni-osnabrueck.de

RE: Question to svn merge (merge just parts of a diff)

Posted by Bert Huijben <be...@qqmail.nl>.

> -----Original Message-----
> From: Kai Behncke [mailto:kai.behncke@uni-osnabrueck.de]
> Sent: dinsdag 9 februari 2016 07:49
> To: users@subversion.apache.org
> Subject: Question to svn merge (merge just parts of a diff)
> 
> Dear users,
> 
> I`m quite new to svn. I would like to know it the following in svn is
> possible:
> 
> 
> 
> I have in (let`s say Revision 2) a file, that I have changed onetime (I
> deleted "B"), with the following content now:
> A
> C
> D
> 
> Then, in Revision 3 an automatic update occurs. The new file has the
> content:
> A
> B
> E
> 
> ...that means that some changes, that I made, are overwritten now. But
> that should not be.....

If all these versions were just committed and updated via the repository, this is the intended behavior and there is nothing you can do about it. If on update the local file is unmodified, the file is replaced by the new version. I can't think of a version management system that does this differently. No merging happens in this situation

If you have local changes, and then an update comes in with changes, you have a different situation. In that case we start a merge operation, that may or may not complete automatically depending on the combination of local and remote changes. You can even configure your own 3-way-merge tool to handle this merge step by your own tool in the config file.


> 
> 
> A diff between 2 and 3 would show someting like:
> A
> -C
> -D
> +B
> +E

If everything is committed, then this is unrelated information. It is local modified vs unmodified that handles the first step.

Otherwise updates that skip revisions aren't possible, etc. etc.


I think you need a more complete sample, perhaps even as a pseudo-script to describe what you really want to ask.

	Bert

> 
> Is there a possibility to do (for Revision 4) a "svn merge" to get a new
> file, that:
> 
> * "knows" that B has been deleted before, so it will not be reintegrated
> *  does not delete  C and D (I would like to declare s.th. like: Don`t
> delete anything that has been added in a former revision)
> * integrates E (as a new entry, that has not been in any former version)
> 
> so that a result like:
> A
> C
> D
> E
> 
> ...comes out?
> What I mean is: Is it possible to "have a look to a diff" and then
> analyze automatically by the system the single-diff parts
> to set some rules if the single diff-parts should be integrated or not?
> 
> Thank you very much, Kai
> --
> ------------------------
> Dr. Kai Behncke
> Zentrum für Informationsmanagement und virtuelle Lehre
> Raum 42/06, Heger-Tor-Wall 12, 49074 Osnabrück
> Telefon: +49 (0)541/969-6505
> http://www.virtuos.uni-osnabrueck.de