[physfs] My shot at PHYSFS_stat
Ryan C. Gordon
icculus at icculus.org
Tue Feb 16 20:52:16 EST 2010
> Perhaps you can help me with a short step list. I have a branch ErrorCode
> i am working on and a default branch. Now i would like to throw away my
> default branch and take yours again. How would you do this with mercurial?
Here's the short version, followed by the long explanation.
cd /where/my/working/copy/resides
hg pull
hg update default
hg pull http://hg.icculus.org/icculus/physfs/
HGMERGE='sh -c "cp \$2 \$0"' hg merge
hg commit
hg push
The long explanation...
I cloned my working copy, experimented, deleted it, and recloned like 18
times writing this. There's a sort of permanence to mistakes you make in
Mercurial, so I wanted to get it right on a clean copy. You can clone
your working directory the same as a URL:
hg clone current-directory-name new-directory-name
...just don't push until you're comfortable with the results.
Normally merging two trees involves Mercurial automatically merging the
differences that aren't near each other (since it's usually two
unrelated people fixing two unrelated things in the same file, or only
one of those two people touched a given file, etc), and then someone
manually cleaning up the places where there was overlap, usually using a
merge tool with a nice GUI.
In this case, though, damned near all our changes are going to conflict,
and you just want to throw away your changes in favor of mine, so we'll
tell Mercurial that the merge tool is "cp." :)
In your working copy, make sure you have the latest from your repo, in
case you jump between workstations as much as I do...
hg pull
hg update default
...then pull the latest from my repo:
hg pull http://hg.icculus.org/icculus/physfs/
...mercurial will say...
pulling from http://hg.icculus.org/icculus/physfs/
searching for changes
adding changesets
adding manifests
adding file changes
added 28 changesets with 87 changes to 27 files (+1 heads)
...then do the "merge" which in this case is "take Ryan's changes no
matter what"...
HGMERGE='sh -c "cp \$2 \$0"' hg merge
...do an "hg diff" here if you want to sanity check the merge. Then
commit the merge and publish it...
hg commit
hg push
...now your default branch looks like mine, and your ErrorCode branch is
left as it was. If you like, you can merge these changes across to the
ErrorCode branch as well, but I would consider using a real merge tool
for that, in case there are conflicts that could go either way.
Also: please make sure you have an .hgrc file in your home directory
with at least your username:
[ui]
username = My Full Name <user at example.com>
...as this is what gets associated with your commits.
--ryan.
More information about the physfs
mailing list