Am 09.05.10 01:33, schrieb Zack Weinberg: > On Sat, May 8, 2010 at 5:08 AM, Thomas Keller <m...@thomaskeller.biz> wrote: >> Am 08.05.10 13:44, schrieb Stephen Leake: >>> Second, what is the rationale, both for providing any default name, and >>> choosing this particular name? >> >> The rationale is simply to make monotone less database-centric and >> verbose with respect to the commands needed to start with a fresh project. >> >>> I can see that proving a default db name it makes it easy to start a >>> totally new project. But it's a significant change, and I'm not happy >>> with the path. >>> >>> I'm ok with initializing the database if needed. >>> >>> Once the project grows a branch that they want to checkout into a >>> different directory, having the database in <branch_1>/_MTN/mtn.db will >>> be very odd and confusing; people will wonder if there should be one db >>> per branch, or one db per workspace. > > I sympathise with Stephen here a bit - Monotone's ability to share one > database among many workspaces is a significant difference from Git > and Mercurial, and one that should be up-front rather than buried. > > How about putting the database in the parent directory of the checkout > and naming it something like _store.mtn by default?
In general I agree, but I fear a behaviour is much more unpredictable and hard to implement than just putting the database into the bookkeeping root. Imagine what happens if the setup / clone path is writable, but the parent of this path is not, what if there already exists a db in the parent path with the same name, et cetera pp. Maybe this is all solvable with more path / rights checking and unique naming, but still, whatever we come up with afterwards, I fear it will look equally if not even more clumsy compared to what we have now, a self-contained workspace. Maybe we could make it easier to "extract", or better "move" an internalized database to an external place and vice versa, so people don't have to mess with _MTN/options by hand? Then maybe $HOME/.monotone/databases/<user-chosen-name>.mtn is a good default, similar to what Stephen proposed. We could add more management features there, f.e. a "list databases" command which lists available known databases, a way to find a database only by its name (ie. -d foo would look for and find $HOME/.monotone/databases/foo.mtn), we could "connect" databases and workspaces by adding known workspaces of a database as db variables and list those as well in the database list. There could be a hook "get_default_database_location" which could be altered by the user to a different path than the default one underknees $HOME, stuff like that. Thomas. -- GPG-Key 0x160D1092 | tommyd3...@jabber.ccc.de | http://thomaskeller.biz Please note that according to the EU law on data retention, information on every electronic information exchange might be retained for a period of six months or longer: http://www.vorratsdatenspeicherung.de/?lang=en
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/monotone-devel