On Thu, Feb 01, 2018 at 08:13:54PM +0200, John Found wrote:
> On Thu, 1 Feb 2018 12:03:13 -0500
> Richard Hipp <d...@sqlite.org> wrote:
> 
> > On 2/1/18, Martin Gagnon <eme...@gmail.com> wrote:
> > >
> > > I could reproduce it. I didn't have much time to investigate it for now
> > > but I have attached a simple shell script that reproduce the problem
> > > starting from scratch.
> > >
> > > Just put the shell script on an empty directory and execute it.
> > 
> > Thanks for the repro script.
> > 
> > If found that it does work if your break up the operation into two
> > distinct steps.
> > 
> > (1) "fossil rm" the old files that will be changed into symlinks.
> > Then "fossil commit".
> > 
> > (2) "fossil add" the new symlinks.  Then "fossil commit" again.
> > 
> > The revised script that works is attached.
> > 
> > It would be great if it worked in a single step.  But this is an
> > obscure case for which there is (now) a work-around, so it is of lower
> > priority for the moment.
> > 
> > -- 
> > D. Richard Hipp
> > d...@sqlite.org
> 
> Yes, thanks, I was able to commit this way. Hope, the bug will not be hard to 
> fix.
> 
> Anyway, another obscure case is when the symlink points to a directory. In 
> this
> case fossil adds the files of the directory twice - from the original 
> directory and from
> the symlink. I was not able to make fossil to add to the repository only the 
> symlink itself.

If you do: "fossil set allow-symlink 1" on the opened checkout, it
should works and add only the symlink.

But you will have same problem as with the symlink to file if you try to
replace the directory by a symlink in one single step. You need to do it
in 2 commits.

So the same work around apply:
  
   0. be sure allow-symlink is ON
        $ fossil set allow-symlink 1

   1. remove directory and all it content:
        $ fossil rm a_dir
        $ rm -rf a_dir

   2. commit the change (remove real dir and it's content)
        $ fossil commit -m "remove dir a_dir and it's content"

   3. create the symlink, add the symlink and commit.
        $ ln -s another_dir a_dir
        $ fossil add a_dir

   4. commit the change (add symlink)
        $ fossil commit -m "add symlink a_dir"


Regards,

-- 
Martin G.
_______________________________________________
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