partial commits
Edward Peschko
horos11 at gmail.com
Fri Aug 7 13:35:37 CDT 2009
>> - abort: push creates new remote branches! (did you forget to
>> merge? use push -f to force)
>
> This makes no sense. If push gives you this message, it most likely
> means someone (possibly you) has pushed changes from another
> repository. Can you give an example sequence of commands that
> reproduces the problem you have described? That is, modify 3 files,
> commit 1, push, push rejected? Mercurial should not behave like that.
of course.. I'm working with other people, they've been modifying whilst
I've been modifying.. My point is that, IMO, people shouldn't have to be
forced to their current working directories and rebuild the world to
support partial commits. I haven't seen it with git, I haven't seen it with
svn, I haven't seen it with CVS even.. Look at the following workflow:
> It seems that you want another working directory to perform your merge.
> So create another clone and pull your 1-file commit.
> Pull from the upstream repo and merge. Commit the merge.
> Push the result in your original working directory.
I need to (in addition to doing the original commit):
1. have 2 separate repositories
2. go to another directory
3 do a pull 1 file commit from a separate repository
3. do yet another pull from upstream.
4. commit that merge in the other directory
5. push to original directory.
If I'm working on multiple branches, I've suddenly doubled the number
of working directories I have, doubled the disk space, and made the
whole process exceedingly error prone.
Hg attic will work for me, but I would think that hg would want that
functionality in the core, and probably integrated into hg update..
If on the other hand, you are saying that this error (multiple branches)
should only occur when the files that you are committing and pushing
to the central depot have already been changed by somebody else,
then I agree with you. Mercurial should not behave that way. It should
be smart enough to realize to look at the central repository and see that
the files you are committing have not been changed and do the push regardless.
Anyways, to reproduce:
- modify and commit files that no one else has modified since last
push to a central depot.
- hg push (get error: push creates new remote branches! did you
forget to merge)
- hg merge (get error: abort: outstanding uncommitted changes)
However I'm using 0.9.4 and am reticent to upgrade because of potential
incompatibility issues, and I cannot upgrade my depot version of hg. But
I will download attic and see how well it works for my needs.
Ed
More information about the Mercurial
mailing list