# HG changeset patch
# User Patrick Mezard <pmezard@gmail.com>
# Date 1241173597 -7200
#      Fri May 01 12:26:37 2009 +0200
# Node ID 609ce91670d0e6652bc15538dd40fea7672921ec
# Parent  ea82a23cf8875c66cbe15c4b917d6eb7037cf917
rebase: fix bug where --keepbranches could leave wrong branch in dirstate

Report and original fix by Augie Fackler <durin42@gmail.com>

diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -172,6 +172,7 @@
                             user=repo[rev].user(),
                             date=repo[rev].date(),
                             extra=extra)
+        repo.dirstate.setbranch(repo[newrev].branch())
         return newrev
     except util.Abort:
         # Invalidate the previous setparents
diff --git a/tests/test-rebase-keep-branch b/tests/test-rebase-keep-branch
--- a/tests/test-rebase-keep-branch
+++ b/tests/test-rebase-keep-branch
@@ -28,3 +28,5 @@
 hg update -C 3
 hg rebase -b 4 -d 3 --keepbranches 2>&1 | sed 's/\(saving bundle to \).*/\1/'
 hg glog --template '{rev}:{desc}:{branches}\n'
+echo '% dirstate branch should be "notdefault"'
+hg branch
diff --git a/tests/test-rebase-keep-branch.out b/tests/test-rebase-keep-branch.out
--- a/tests/test-rebase-keep-branch.out
+++ b/tests/test-rebase-keep-branch.out
@@ -31,3 +31,5 @@
 |
 o  0:c1:
 
+% dirstate branch should be "notdefault"
+notdefault