On 5/16/16, Ross Berteig <r...@cheshireeng.com> wrote:
>
>>> That would require a backwards-incompatible change to the manifest format
>
> Unless some clever trick can be invented that will let older versions of
> fossil simply see such files as newly added at the time of the copy
> while letting a new version also track the history across that event.
>
> I'm not steeped enough in the manifest details to know what is possible
> myself, however.
>

I think this could be done using the existing F-card in the Manifest
artifact 
(https://www.fossil-scm.org/fossil/doc/trunk/www/fileformat.wiki#manifest).
Merely put the name of the file copied from in the old-name field, and
then add a new letter (perhaps "c") to the permissions field to let
Fossil know that the file was copied from old-name rather than moved
from old-name.

The extra "c" character in teh permissions field is necessary to
distinguish between these cases:

Case 1:  (this is not a copy)
      fossil mv abc.txt def.txt
      echo hi >abc.txt
      fossil add abc.txt

Case 2:
      fossil cp abc.txt def.txt


The "c" flag in permissions would only occur for Case2.  There are
other interesting cases to be on guard against, for example:

Case 3:
      fossil mv a.txt temp.txt
      fossil mv b.txt a.txt
      fossil mv temp.txt b.txt

That part is easy I think.  The hard part will be updating the current
Fossil implementation to understand the implications of forks in file
change graphs.

-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to