[darcs-users] Initial impressions of darcs

Dustin Sallings dustin at spy.net
Tue Aug 24 17:48:18 UTC 2004


On Aug 24, 2004, at 2:39, Ketil Malde wrote:

>>>> Right, so it would perhaps be safer and more efficient to do a kind 
>>>> of
>>>> "foreach dir {darcs pull -av}", to make a local mirror of your 
>>>> server.
>
> This is almost what I do for backups; i.e.
>      find project_dir -name _darcs | xargs tar cvf ...
>
> You want to do this to make sure you have all "official" branches
> locally, right?  And not because your project consists of multiple
> (subdir) repositories?

	Right.  I pull all ``official'' changes to all of my machines.

>>> 	Right, but you have to do both the initial get, and set up the other
>>> side (at least in my case, the place from which I pull my trees is
>>> pretty much never the place where I do any records).
>
> So you want (some of) your local branches to propagate back to
> wherever you got the trunk from?  More precisely, you want some kind
> of automatic ability to create repositories on a server?  Like a
> 'darcs put' command, is that it?

	That's not really the issue (although it would be nice).

> Personally, I don't see the big problem with logging into the server
> to create repositories - is there some reason that won't work for you?

	It has been, but not logging into the server would be even better.  :) 
  (Again, not the issue)

>>> That's the difference.  I have shell scripts to keep my mirrors
>>> up-to-date, but for each new project, I do the following:
>
>>> 	In arch, I just make a new category/branch/version and start 
>>> working.
>
> How do you keep branches private?  I often branch when I want to
> experiment a bit with some feature - not something I want publicized
> too early.

	You branch it into a private repository.  Darcs has no separation 
between working tree, branch, and repository.  In arch, a branch lives 
in a repository, and you check out a tree from this branch (from the 
repository).  You can branch into a different repository if you want 
to.

	However, if I branch (or create new, or whatever) in one of my 
``official'' repositories, they all have replication rules around them 
and stuff, so new things are just picked up and moved to all of my 
development machines with no additional work.

	Conversely, when I branch (or create new, or whatever) in darcs, it's 
a new repository and I have to tell all of my machines about it.

	Actually, arch has the same problem, it just doesn't affect as much.  
If I create a new repository altogether, I have to go around and tell 
all of my machines about it so they can replicate and stuff.  However, 
many branches may live inside this repository, so I create them less 
frequently than I start or branch projects.

> It seems to me the biggest difference is that there is push and pull,
> but only get and no put.  Would that solve it for you?

	I don't really think there's a solution that doesn't either involve an 
external tool or a fundamental change to darcs.  Basically, what I need 
is to have a ``list'' of repositories that's managed on my central 
machine from which every other machine can pull (or get if it sees 
something new).

	Of course, put would be nice as well for getting things there, but 
it's not as big of a deal to me at the moment.

-- 
Dustin Sallings





More information about the darcs-users mailing list