[darcs-users] basic patch-juggling question

Max Battcher me at worldmaker.net
Mon Feb 26 06:35:48 UTC 2007


On 2/25/07, Zachary Pincus <zpincus at stanford.edu> wrote:
> Thanks for the information. After unpulling, etc, what's the best way
> to record those changes as a patch that I can apply to the master
> repository? (After all, the goal is still to get a file in the master
> repository to look like an arbitrary past version.)

Perhaps you could shed some light on this...  why exactly do you need
the "master" repository in some arbitrary past version?  Why can't you
do it in some other related repository?  The Darcs mentality, as
someone else pointed out, is that it is quick enough just to build a
new copy/branch of a repository than to worry about getting an
existing repository to a certain point.

A stop-gap solution if your "master" repository absolutely needed to
be in a certain position would be to build your other branch as needed
and then:

mv master temp
mv clone master
mv temp clone

Furthermore, if this sort of thing is something that happens a lot,
such as a verbose debugging flag, it may make a lot more sense not to
track in the repository at all and instead use an appropriate build
tool or distribution tool.

> If I recall correctly, a basic unpull operation isn't something
> that's recorded as a patch -- and so couldn't be 'recorded' and
> 'pushed' to the master repository.

Um...  yes, and unpull isn't recordable in the same way that past
history is... er...  already recorded.  You can perform the same
unpull to any number of repositories to get them into the exact same
past state.

> In addition, if I unpull in a temp
> repository and then modify some file and record that patch, will that
> patch apply cleanly to the master repository, where the context is
> different?

Absolutely.  This is where Darcs truly shines.  Darcs is great at
allowing you to have many (many) repositories in many different shapes
and cherry-pick patches between them.  With this question you get much
closer to seeing the "Darcs way of things"...  There is no such thing
as a master repository so much as there is a repository that I might
deem "master" or "stable" or "pull-from-me" or "apple-pie".  I can
move patches from one repository to another as needed, and I can let
Darcs determine for me what context a patch was in when I made it and
how to get the patch applicable to another repository..

You just have to remember that Darcs is not SVN or GIT or whatever...
It is, imnsho, much smarter than that.  :-P

-- 
--Max Battcher--
http://www.worldmaker.net/
All progress is based upon a universal innate desire on the part of
every organism to live beyond its income. --Samuel Butler



More information about the darcs-users mailing list