[darcs-users] not erasing changes?

Albert Reiner areiner at tph.tuwien.ac.at
Sat Mar 31 17:00:31 UTC 2007


[Zach <netrek at gmail.com>, Thu, 29 Mar 2007 21:11:34 -0400]:
> If I make changes to my darcs repo and pull or get from another repo
> how can I make sure I don't lose my changes? I know if I don't
> record changes it won't be preserved but what if I record and then
> pull from another repo?

My understanding may be incorrect, but my mental model of how darcs
works in this respect is that nothing bad happens either way:

When you pull patches into your repo, they are applied to both the
pristine cache (i.e., foo/_darcs/current) and your working tree (i.e.,
foo/).  If some of your local changes are at odds with the pulled
patches, you get conflicts and will be able to resolve them.  The only
subtlety is that you may end up with a different set of conflicts in
the pristine cache and in your working tree if you don't record your
local changes before pulling, i.e., if pristine and working tree
differ.

In fact, in at least one of the repos I routinely exchange patches
with I have non-recorded changes dating back to at least 2005.  If I
recall correctly, however, darcs only informs you about conflicts in
the cache, not in your working copy.

> Is there a way to tell darcs to pull/get any new patches except
> those that would erase mine using a command line switch?

I am not aware of an option to pull only patches that do not introduce
a conflict; if the effort of pulling is not too great, you might want
to check whether `darcs pull --dry-run' will tell you about conflicts.

Best regards,

Albert.




More information about the darcs-users mailing list