On Jan 28, 2011, at 12:43 PM, Stephan Beal wrote:

> i, for one, am against adding symlinks support for exactly these types of 
> reasons. Too many questions regarding their portable use cannot be answered 
> (and some of them are purely philosophical rather than technical, e.g. 
> whether or not to allow links outside the repo).

But this is not a problem. Symlinks are symlinks: they can point to whatever 
they like, even if path doesn't exist, even on Windows (Vista/7). This is one 
of the reasons they're called "symbolic", I guess :-) We should't even care if 
they point outside the repo or inside. The actual technical problem is a 
Windows implementation detail: function CreateSymbolicLink() must be explicitly 
told if we'd like a link to a file, or a link to a folder.

> i've been a die-hard Unix user since well over 10 years, i don't own a copy 
> of Windows or Mac or any other non-Unix-like system (don't tell me Mac is 
> Unix-like!),

It's not Unix-like, it's Unix :-) 
http://www.opengroup.org/openbrand/register/brand3555.htm

> and i use symlinks on a daily basis. Even so, i strongly feel that trying to 
> version control symlinks is an exercise in futility, pain, and suffering, and 
> a great source of bugs and incompatibilities. It cannot work transparently 
> across platforms, period, and there are good reasons why so few source 
> control systems attempt to version them. Symlinks are platform-specific 
> convenience objects, and not a feature which can be portably emulated.

But we still _must_ handle them somehow. The current (pre-symlink) behavior 
depends on a "good" state of working directory -- that you won't use symlinks 
in an incompatible way. And you can discover the incompatible behavior only 
after adding files to repository.

See this discussion:
http://thread.gmane.org/gmane.comp.version-control.fossil-scm.user/996/focus=1020

and this ticket:
http://fossil-scm.org/index.html/tktview/aa494b5832ac1a1ee098d96278f08c0cb7e112b9

My proposal fixes this by handling symlinks as symlinks. I think making 
symlinks plain-text files on platforms that don't support them is better than 
having a broken repository on platforms that support them.

--
Dmitry Chestnykh

_______________________________________________
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