bzr status, diff, etc do not work properly after remote push
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
Cheuksan Edward Wang |
Bug Description
As we all should know, pushing to a remote branch does not currently update the remote working tree. However, after a remote push, bzr status on the remote machine does not work properly. Basically, bzr status does not show that the working tree is different than the last committed revision, when it clearly is different.
In other words, the following 3 commands should always return the same result, but I have a reproducable case where they do not.
# bzr st
# bzr st -r-1
# bzr st -r-1..
I setup the reduced case below using sftp://
# alias bzrdev=
# bzr version; bzrdev version;
bzr (bazaar-ng) 0.8.2
Copyright 2005, 2006 Canonical Development Ltd.
http://
bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.
bzr (bazaar-ng) 0.9.0dev0
bzr checkout, revision 1736
nick: bzr.dev
revid: <email address hidden>
Using python interpreter: /usr/bin/python
Using python standard library: /usr/lib/python2.4
Using bzrlib: /root/bzr.
Copyright 2005, 2006 Canonical Development Ltd.
http://
bzr comes with ABSOLUTELY NO WARRANTY. bzr is free software, and
you may use, modify and redistribute it under the terms of the GNU
General Public License version 2 or later.
# rm -r b1 b2 &>/dev/null; bzr init b1; bzr init b2; touch b1/t; bzr add b1; bzr ci -m 't' b1;
added t
added t
Committed revision 1.
# cd b1; bzr push sftp://
bzr: WARNING: This transport does not update the working tree of: sftp://
1 revision(s) pushed.
/root
# ls -a b2
. .. .bzr
# bzr st b2
# bzr st b2 -r-1
removed:
t
# bzr st b2 -r1
removed:
t
# rm -r b1 b2 &>/dev/null; bzrdev init b1; bzrdev init b2; touch b1/t; bzrdev add b1; bzrdev ci -m 't' b1;
added t
added t
Committed revision 1.
# cd b1; bzrdev push sftp://
bzr: WARNING: This transport does not update the working tree of: sftp://
1 revision(s) pushed.
/root
# ls -a b2
. .. .bzr
# bzrdev st b2
# bzrdev st b2 -r1
removed:
t
# bzrdev st b2 -r-1
removed:
t
Changed in bzr: | |
assignee: | nobody → wang02139 |
Changed in bzr: | |
assignee: | wang02139 → nobody |
Changed in bzr: | |
assignee: | nobody → wang02139 |
status: | Unconfirmed → Fix Released |
Still true in bzr.dev.
Easiest thing I can think of is to print out some something like:
if wt.last_revision() != wt.branch. last_revision( ):
print "working tree is out of date, run 'bzr update'"
But I'm not sure how that would exactly work with the status output. (where it should be put, etc)
It seems worth putting in. Not sure that it should block 0.9, though.