Martin Furter wrote:
> On Tue, 17 Nov 2009, Julian Foad wrote:
>> Martin Furter wrote:
>>> On Mon, 16 Nov 2009, Daniel Shahaf wrote:
>>>> Philip Martin wrote on Mon, 16 Nov 2009 at 19:31 -0000:
>>>>> Martin Furter <mf_at_rola.ch> writes:
>>>>>> On Mon, 16 Nov 2009, Philip Martin wrote:
>>>>>>> How about replacing the text of a file, to obliterate a few
>>>>>>> characters, rather than obliterating the whole text.
>>>>>> Say that revision was committed a few weeks ago and development
>>>>>> So there were changes to that file in later revisions.
>>>>>> How would you solve the conflicts when obliterating those later
>>>>> Conflicts? Obliterate operates on a given revision and obliterates
>>>>> whatever that revision contains.
>>>> If you modify the text of an early revision, and a later revision is
>>>> stored as a delta against the early revision, wouldn't the
>>>> of the later revision possibly become corrupted?
>>> Or in fs_bdb where HEAD is fulltext (it's still that way right?) some
>>> earlier revisions could becom corrupted.
>> No, no, nothing will be corrupted. Part of the job of the software
>> functions that implement "obliterate a specified node-rev of file F"
>> will be to adjust any deltas, pointers, etc. in whatever way is needed
>> to make all other copies and revisions of F stay exactly as they were,
>> if the user doesn't want to obliterate all revisions and all copies of
>>> Additionally you just checkout HEAD and it still contains the parts
>>> should have been obliterated.
>> No. Same reason as above.
> OK, makes sense so far. But then we're back at my first question.
> Let's ignore all the FS implementation details and assume it stores
> fulltext for every revision. And I have added line 5 to the file hello.txt
> in revision 10 and changed that line in revision 20. Now I want to
> obliterate revision 10.
> If I understand you right obliterate would reverse merge that change to
> all revisions since r10. Wouldn't it lead to a conflict in r20 since it
> tries to merge a change to a line which has also been modified there?
That would only be true if the semantics of Obliterate were equivalent to
"Undo the changes in Rev 10." But the semantics of Obliterate are "Remove
Rev 10 from the repo leaving Rev 11 exactly as it was." IOW, the difference
between Rev 9 and Rev 11 should be unchanged by the Obliterate.
View this message in context: http://old.nabble.com/Obliterate-questions-tp26317105p26396470.html
Sent from the Subversion Dev mailing list archive at Nabble.com.
Received on 2009-11-17 22:02:56 CET