On Wed, 18 Nov 2009, Julian Foad wrote:
> On Tue, 2009-11-17 at 12:50 -0800, Mike A wrote:
>> Martin Furter wrote:
>>> On Tue, 17 Nov 2009, Julian Foad wrote:
>>>> 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.
> Correct. Thanks, Mike.
Thank you all for the explanation.
And sorry for the noise.
Received on 2009-11-18 03:15:37 CET