Fix handling of paths when run outside the repo.
The main problem was that dirstate.getcwd() returned just "",
which was interpreted as "we're at the repo root". It now returns
an absolute path.
The util.pathto function was also changed to deal with the "cwd is
an absolute path" case.
adding x
Patch queue now empty
% should fail
abort: no patch named does-not-exist.patch
% should fail
abort: no patches applied
applying a.patch
Now at: a.patch
% should guard a.patch
% should print +a
a.patch: +a
Patch queue now empty
a.patch: +a
% should push b.patch
applying b.patch
Now at: b.patch
Patch queue now empty
number of unguarded, unapplied patches has changed from 2 to 3
% should push a.patch
applying a.patch
Now at: a.patch
% should print -a
c.patch: -a
% should skip c.patch
applying b.patch
skipping c.patch - guarded by '-a'
Now at: b.patch
% should push c.patch
applying c.patch
Now at: c.patch
Patch queue now empty
guards deactivated
number of unguarded, unapplied patches has changed from 3 to 2
% should push all
applying b.patch
applying c.patch
Now at: c.patch
Patch queue now empty
number of unguarded, unapplied patches has changed from 1 to 2
% should push a.patch, not b.patch
applying a.patch
Now at: a.patch
applying c.patch
Now at: c.patch
Patch queue now empty
% should push b.patch
applying b.patch
Now at: b.patch
Patch queue now empty
number of unguarded, unapplied patches has changed from 2 to 3
% should push a.patch, b.patch
applying a.patch
Now at: a.patch
applying b.patch
Now at: b.patch
Patch queue now empty
number of unguarded, unapplied patches has changed from 3 to 2
% list patches and guards
a.patch: +1 +2 -3
b.patch: +2
c.patch: unguarded
% list series
0 G a.patch
1 U b.patch
2 U c.patch
% list guards
1
2
3
% should push b.patch
applying b.patch
Now at: b.patch
applying c.patch
Now at: c.patch
guards deactivated
popping guarded patches
Patch queue now empty
reapplying unguarded patches
applying c.patch
Now at: c.patch
% guards in series file: +1 +2 -3
+1
+2
-3
% should show c.patch
c.patch
% should show :
% new.patch: +1 +2 -3
% b.patch: +2
% c.patch: unguarded
new.patch: +1 +2 -3
b.patch: +2
c.patch: unguarded
Now at: c.patch
% should show new.patch and b.patch as Guarded, c.patch as Applied
% and d.patch as Unapplied
0 G new.patch
1 G b.patch
2 A c.patch
3 U d.patch
% new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
0 G new.patch
1 G b.patch
2 A c.patch
3 G d.patch