On Sat, Apr 28, 2012 at 13:00, Matt Welland <estifo...@gmail.com> wrote:
> On Sat, Apr 28, 2012 at 6:34 AM, Richard Hipp <d...@sqlite.org> wrote:
>> On Sat, Apr 28, 2012 at 7:03 AM, Leo Razoumov <slonik...@gmail.com> wrote:
>>>
>>> Hi All,
>>> Fossil design clearly separates a project repository database from a
>>> checkout database. It is explicitly stated in the Fossil
>>> documentation:
>>>
>>>  http://fossil-scm.org/index.html/doc/trunk/www/tech_overview.wiki
>>>  "Notice that the checkout database contains a pointer to the
>>> repository database but that the repository database has no record of
>>> the checkout databases. That means that a working checkout directory
>>> tree can be freely renamed or copied or deleted without consequence."
>>>
>>> Unfortunately, this in not true anymore since trunk [e604d483ee55]
>>> (2012-04-27 15:43:51). Now  every time you "fossil open" a repository,
>>> the checkout root gets recorded into config portion of the project
>>> repo. All the checkouts ever created are displayed as "alt-root"
>>> entries by "fossil info". The "alt-root" list can get long if one has
>>> many checkouts. By the way, "fossil close" does *NOT* remove the entry
>>> from the alt-root list (a bug??). The list only grows and never
>>> shrinks. A convenient way of dispensing with checkouts by "rm -rf
>>> path-to-checkout" leaves behind dangling references to non-existing
>>> directories.
>>>
>>> To the best of my knowledge there has been no discussion of this
>>> feature on the fossil-users or fossil-dev mailing lists. Therefore, I
>>> would greatly appreciate if someone can explain to me
>>>
>>> (1)  What is the purpose of the feature.
>>> (2)  Its intended use.
>>> (3)  Rational for violating long-standing Fossil design principle that
>>> project repo database does not know its checkouts.
>>
>>
>> I added this to help me keep track of where my check-outs are located.  I
>> keep all of my repositories in a single directory so I know where they all
>> are.  But my check-outs are scattered about hither and yon, according to
>> their use and function.  Many times I'll be looking at my growing collection
>> of repositories and wonder "where did I check this one out most recently".
>> Or I'll be be working in a check-out and want to do some unrelated change on
>> another branch and then wonder if I have other checkouts of the same repo
>> sitting around anywhere.
>>
>
> Isn't this information also stored in ~/.fossil as
> "ckout:/path/to/ckout|/path/to/repo.fossil" entries? I think I'd prefer to
> see the data recorded just once and actually I think the ~/.fossil file is a
> better place. Those entries should meet all your requirements as it maps
> each repo db to a checkout. Even if the repo db was moved there is enough
> data available to find the mapping and update the pointers in the _FOSSIL_
> files.
>
> Since I can't get fossil ssh to work we are using rsync to sync fossils
> cross-site and with this feature every time someone blows away a repo and
> re-gets it the rsync logs will show a transfer implying that a change was
> made. Not a big deal but confusing and an annoyance nonetheless.
>
> If the decision is to stick with the new method then please consider
> removing the code that adds the ckout: entries to ~/.fossil as people will
> write automation that relies on one or the other and that can get messy and
> chaotic when there is not one canonical source data location.
>

Matt,
very good point!  IMHO,  "~/.fossil" is, indeed, the best place to
keep track of the existing checkouts. One can also write a script that
loops through the checkouts in ~/.fossil and removes the dangling
references and/or lists checkouts with uncommitted changes.

--Leo--
_______________________________________________
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