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. > If you are thinking of moving or renaming a Fossil repository file, a > listing of check-outs would be very useful in helping to determine what > will break and need fixing. > > On a server, I often have multiple CGI scripts all pointing to the same > repository. A similar feature, added at the same time, keeps track of all > of the possible URLs for accessing a repository. On the main Fossil > webserver for example, I just now did "fossil info fossil.fossil" and I see > this: > > access-url: http://fossil-scm.hwaci.com/fossil > 2012-04-28 > access-url: http://fossil-scm.hwaci.com/index.html > 2012-04-28 > access-url: http://fossil-scm.org/fossil > 2012-04-28 > access-url: http://fossil-scm.org/index.cgi > 2012-04-28 > access-url: http://fossil-scm.org/index.html > 2012-04-28 > access-url: http://fossil-scm.org/xfer > 2012-04-28 > access-url: http://sqlite.org/debug1 > 2012-04-28 > access-url: http://www.fossil-scm.org//index.html > 2012-04-28 > access-url: http://www.fossil-scm.org/fossil > 2012-04-28 > access-url: http://www.fossil-scm.org/index.html > 2012-04-28 > access-url: http://www.fossil-scm.org/xfer > 2012-04-28 > access-url: http://www.sqlite.org/debug1 > 2012-04-28 > access-url: https://fossil-scm.org/index.html > 2012-04-28 > access-url: https://www.fossil-scm.org/fossil > 2012-04-28 > access-url: https://www.fossil-scm.org/index.html > 2012-04-28 > > Those are the various URLs by which the Fossil repository has been > accessed recently. Some are just multiple domain names assigned to the > same IP address (www.fossil-scm.org vs fossil-scm.org vs > fossil-scm.hwaci.com) but other actually reflect separate CGI scripts > (index.html, index.cgi, fossil, xfer, and debug1). There are 65 other > Fossil repositories on the same machine. A cross-reference like this is > helpful in keeping track of where stuff is located. If I move or rename a > repository, it gives me a quick way to find all of the CGI scripts that > will need to be updated. > > Eventually, I'd like to add an enhancement whereby one can ask "Do I have > any uncommitted changes for this project, possibly in other checkouts?" > and "Do I have any uncommitted changes anywhere on this system?" The > mapping from repositories to check-outs will help answer those questions. > > Note that mapping from repository to check-out is more of a log-file > entry. It is not required to be consistent in order for the system to > function. It is advisory only. So this change should not have broken > anything. > > Yes, it would be nice if there was a way to cull these lists, similar to > the "fossil all ignore" command. So many ideas... So little time... > > > > > >> >> Thanks and Best Regards, >> --Leo-- >> _______________________________________________ >> fossil-users mailing list >> fossil-users@lists.fossil-scm.org >> http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users >> > > > > -- > D. Richard Hipp > d...@sqlite.org > > _______________________________________________ > fossil-users mailing list > fossil-users@lists.fossil-scm.org > http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users > >
_______________________________________________ fossil-users mailing list fossil-users@lists.fossil-scm.org http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users