[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