Ticket change
[
3246c81734]
(rid 5375) by
anonymous on
2009-10-01 12:52:07:
- Change comment to "When fossil adds directories that contain symbolic links to other directories in a fossil repository, on future checkouts the symbolic link will become an entirely seperate copy of the entire directory structure that was pointed to on disk. See below explanatory logs for example / steps to reproduce.
Esp. look at the two outputs of "ls -l three/".
<verbatim>
$ fossil version
This is fossil version [37f295c310] 2009-09-21 19:19:20 UTC
$ fossil new tmp.fossil-scm
[...]
$ fossil open tmp.fossil-scm
$ mkdir -p one/two three
$ echo testing > one/two/txt.txt
$ (cd three && ln -s ../one/two)
$ ls -l three/
total 0
lrwxrwxrwx 1 djbclark djbclark 10 2009-09-29 15:05 two -> ../one/two
$ fossil add one three
ADDED one/two/txt.txt
ADDED three/two/txt.txt
$ fossil commit -m "test of unexpected behavior" --nosign
New_Version: 160e9429f44953ea6f42902f62a706dd3838775c
$ fossil close
$ rm -rf manifest manifest.uuid one three
$ ls
tmp.fossil-scm
$ fossil open tmp.fossil-scm
one/two/txt.txt
three/two/txt.txt
[...]
$ ls -l three/
total 4
drwxr-xr-x 2 djbclark djbclark 4096 2009-09-29 15:07 two
# above - now "magically" an actual seperate copy, not a symlink
$ grep txt.txt manifest
F one/two/txt.txt 9801739daae44ec5293d4e1f53d3f4d2d426d91c
F three/two/txt.txt 9801739daae44ec5293d4e1f53d3f4d2d426d91c
# above - at least I'm guessing this means it doesn't take up extra
# space in the repository, but stat shows they do take up extra
# space on disk (different inodes) , which sucks esp. for this
# project which needs to fit on a certain size of media...
$ stat one/two/txt.txt
File: `one/two/txt.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 319977 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/djbclark) Gid: ( 1000/djbclark)
Access: 2009-09-29 15:07:33.000000000 -0400
Modify: 2009-09-29 15:07:33.000000000 -0400
Change: 2009-09-29 15:07:33.000000000 -0400
$ stat three/two/txt.txt
File: `three/two/txt.txt'
Size: 8 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 319980 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/djbclark) Gid: ( 1000/djbclark)
Access: 2009-09-29 15:07:33.000000000 -0400
Modify: 2009-09-29 15:07:33.000000000 -0400
Change: 2009-09-29 15:07:33.000000000 -0400
</verbatim>
(Putting [http://thread.gmane.org/gmane.comp.version-control.fossil-scm.user/996/focus=1020|Re: limiting symlinks] in ticket form.)"
- Change foundin to "37f295c310"
- Change private_contact to "ace2a438fb254e5d21ba2ed1295b2da8392d271c"
- Change severity to "Severe"
- Change status to "Open"
- Change title to "Fossil changes symlinks into seperate files"
- Change type to "Code_Defect"