Here's what I do, which is very similar to what Nathan outlined. I use a combination of aliases and the remotebranches extension. The remotebranches extension mocks up the namespace of "ALIAS/BRANCH" for the tip of any given branch on a given aliased repository. (My example that I gave in the earlier email was for when I'm not using RB.)
So let's say I've got a bunch of stuff going on, but I identify an isolated bug. If I have not yet committed the fix, I do:
hg pull ytanalysis hg up -r "ytanalysis/yt" [fix bug] hg commit hg nudge
(I have aliased "nudge" to "push -r .")
Then I issue a pull request. If I'm expecting it to take a long time, I can also bookmark it at that point, which makes it easier to remember which is which.
Other things that are useful are the shelve command, which will pull all uncommitted changes into a spot that they can be unshelved from. This is what I do if I find a bug and have to fix it. Usually I'll do "hg record" to interactively commit everything but the bug, then shelve it, then update to the remote tip, unshelve, issue PR.
Mind you, some of this relies on things still being "draft" changesets. This means they haven't been pushed to a "publishing" repository, which by default on BB I think repos are. The fluidity that comes with history rewriting using obsolete changesets in hg is not yet accessible on BB, but I think it will be some day, and it will make this whole process considerably easier. The repo history will still be append-only, but that append-only will include an obsolesence indicator that shows which changesets have been supplanted. This is "safe" history rewriting. I'm considering spinning up some Kallithea instances for review of PRs that are likely to undergo lots of history rewriting, as a supplement (but not replacement for) bitbucket, as Kallithea already supports obsolete marker exchange.
Anyway, does that help at all?
On Thu, Sep 11, 2014 at 12:14 PM, Chris Malone email@example.com wrote:
I apologize in advance for my naivety...
I asked this in IRC, and Kacper was kind enough to provide some insight, but alas I was still having problems getting this to work. I know it involves bookmarks and heads, but I'm still not as familiar with mercurial as I am with git, so this all confuses my gitsense. Also, I know there are others who have this issue - perhaps this should be on the docs page somewhere...
Let's say I have my fork of yt wherein I already have a pending PR on BB. I can't simply make changes to my fork and push them in the default branch/bookmark because BB likes to automagically update PRs.
What is the recommended procedure for committing and pushing new changes to my fork so that I can issue an additional PR? Do I create a bookmark, then commit my changes, then push that bookmark to BB? If so, how then can I issue a PR from that bookmark - I can't seem to find this on the BB interface.
yt-dev mailing list firstname.lastname@example.org http://lists.spacepope.org/listinfo.cgi/yt-dev-spacepope.org