Am 17.04.2009 um 19:44 schrieb D. Richard Hipp:

(...)

>> Copying a Working Directory
>> ---------------------------
>> I'm a little confused about what happens when I make a copy of the
>> directory containing my repository and the source code.  They seem to
>> stay linked somehow. Is this a bug?  Is it a feature?  What's the
>> proper fossil technique?

(...)

> It is a feature.  In hg, the working directory and the repository all
> all wrapped together as one.  With fossil they are distinct.  If you
> want a separate copy of the repository, you'll need to clone it using
> the "fossil clone" command.  Then check out the new working directory
> from the clone.  Also:  be sure to turn off autosync in the clone or
> it will try to automatically push its changes back to the original.

Perhaps I did get it wrong, but I thought, he had written:

   (...) when I make a copy of the directory containing my repository
   *and* the source code. (...)

Emphasis mine! So I thought he had copied the repository as well! So  
now he was astonished why both repositories seem to be connected  
somehow ...

If I did not understood him wrong, than it's worth mentioning, that  
those both *repositories* are *not* connected together! The checkouts  
are, however.

Suppose he has a directory like this:

   /tmp/XXX/src
   /tmp/XXX/_FOSSIL_
   /tmp/XXX/the_repository.fsl

then the file '/tmp/XXX/_FOSSIL_' contains a reference to '/tmp/XXX/ 
the_repository.fsl'.

If he now copies 'XXX' to 'YYY' he will get a structure like:

   /tmp/YYY/src
   /tmp/YYY/_FOSSIL_
   /tmp/YYY/the_repository.fsl

But '/tmp/YYY/_FOSSIL_' still contains a reference to '/tmp/XXX/ 
the_repository.fsl' as the copy was not performed via fossil but some  
third-party tool like e.g. 'cp'. So fossil does not know about that  
copying took place.

If he now switch into '/tmp/YYY' and commit some changes, they will be  
committed into '/tmp/XXX/the_repository.fsl' and not the one he  
thought!!! Bad trap for sure, as the checkout of '/tmp/YYY' is indeed  
decoupled from the repository '/tmp/YYY/the_repository.fsl'!

So if he still wants to work that way, he should either 'fossil clone'  
that repository, as you proposed, or he should 'fossil close; fossil  
open' within '/tmp/YYY' right after the copy.

I feel, the cloning is the fossil way to go!

However, if I did understood him wrong and he did, what you all  
already answered to him, please sorry the noise I made ...


Ciao,
chi :-)

_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to