I use the following every week or so to create a new branch named foobar that is branched from my current working directory, which could be any named branch. Let's say I do this for a year.
I will have several branches name "foobar" that was created from many different branches and the commit text is random.
How can I find all of these "roots" (the commit after the hg branch foobar is ran)
PS D:\Test> hg summ
parent: 33670:fd440a61dce2
AD: fix case 15578
branch: SomeRandomBranchName
commit: (clean)
update: (current)
PS D:\Test> hg branch foobar
marked working directory as branch foobar
PS D:\Test> hg ci -m "Some Random String"
PS D:\Test> hg summ
parent: 33676:dbb7b123f05f tip
create foobar
branch: foobar
commit: (clean)
update: (current)
phases: 1 draft
PS D:\Test>
Related
I already read topics like How to correctly close a feature branch in Mercurial?
But I want remove branches reference.
Example
hg branch my-branch
hg commit -m "commit" --close-branch
hg branches -c
hg branches -c displays my-branch in the list. And I can't create a new branch named my-branch.
hg branch my-branch
Mercurial shows me an error :
abort: a branch of the same name already exists
Do you know how to remove branch reference definitively ?
hg help branch
...
options:
-f --force set branch name even if it shadows an existing branch
...
I have a mercurial repository with a named branch branchA. The revision looks like this
default --A-------------------------G
\
branchA \---B---C---D---E---F
The output of hg branches is:
default 193:817540244f12
branchA 192:b7cac921fec3
What I want to do is to merge the change G in default to branchA. But when I try to update to branchA with hg update branchA, hg branch shows it's still in default. With hg merge default, mercurial complains "abort: nothing to merge (use 'hg update' or check 'hg heads')".
The hg heads output is:
changeset: 193:817540244f12
tag: tip
parent: 188:7ccc08b69f25
...
changeset: 192:b7cac921fec3
branch: branchA
With mercurial it is easy to create a tag at a certain revision: hg tag -r <revision> <tag-name>. But how to create a branch at a certain revision?
Preface: Mercurial branches are two types:
named branch
anonymous
Named Branch
In order to get named branch BRANCHNAME, starting at REV
hg update REV
hg branch BRANCHNAME
...
hg commit
commit is a must, because
the branch will not exist in the repository until the next commit
as noted in hg help branch
Anonymous branch
hg update REV
...
hg commit
and current branch get additional head
And as a last step, use the following command to create a remote branch and push the changesets.
hg push --new-branch
You could you hg clone -r <rev>. From the command line help (run hg -v help clone):
- create a repository without changesets after a particular revision:
hg clone -r 04e544 experimental/ good/
hg update develop --clean
remote: conq: repository does not exist.
abort: no suitable response from remote hg!
I would like to be able to switch to my develop branch, to undo my last 2 commits and merge the develop branch with tip or close it!
OR
just close and rename the branch, but since I can not update to it I don't know what to do.
I would like to: overwrite branch x with branch y:
hg update x
hg commit --close-branch -m 'closing branch x, will be overwriten with branch y'
hg update y
hg branch -f x
hg ci
but i can't update to x. How to fix/force this?
I used the MQ extension:
hg qinit
hg qimport -r 4:tip
hg qpop -a
hg qdelete 4.diff
hg qpush -a
hg qfinish -a
That worked but after a pull the removed stuff was back in..
But, I just created a new Branch one from tip using -f with the same name.
that works good enough for me. Can't remove the 'wrong' branch it since it is 'out of the bottle' published.
If I create a branch:
hg branch branch-A
and commit to it:
hg commit -m "improvement A-1"
and then create a second branch:
hg branch branch-B
and commit to it:
hg commit -m "improvement B-1"
If I want to add my next change to branch-A do I simply type:
hg branch branch-A
and commit to it as before:
hg commit -m "improvement A-2"
hg branch
always creates a branch (although it warns you if the branch already exists.) To switch to an existing branch, either
hg update -r <some revision in that branch>
or
hg update <that branch>
will switch to that branch.