~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix git.reset() to remove the added files
[stgit]
/
stgit
/
git.py
diff --git
a/stgit/git.py
b/stgit/git.py
index
6b14a74
..
2884f36
100644
(file)
--- a/
stgit/git.py
+++ b/
stgit/git.py
@@
-612,8
+612,8
@@
def checkout(files = None, tree_id = None, force = False):
if not files:
files = []
if not files:
files = []
- if tree_id and __run('git-read-tree', [tree_id]) != 0:
- raise GitException, 'Failed git-read-tree -
m
%s' % tree_id
+ if tree_id and __run('git-read-tree
--reset
', [tree_id]) != 0:
+ raise GitException, 'Failed git-read-tree -
-reset
%s' % tree_id
checkout_cmd = 'git-checkout-index -q -u'
if force:
checkout_cmd = 'git-checkout-index -q -u'
if force:
@@
-643,7
+643,13
@@
def reset(files = None, tree_id = None, check_out = True):
tree_id = get_head()
if check_out:
tree_id = get_head()
if check_out:
+ cache_files = __tree_status(files, tree_id)
+ # files which were added but need to be removed
+ rm_files = [x[1] for x in cache_files if x[0] in ['A']]
+
checkout(files, tree_id, True)
checkout(files, tree_id, True)
+ # checkout doesn't remove files
+ map(os.remove, rm_files)
# if the reset refers to the whole tree, switch the HEAD as well
if not files:
# if the reset refers to the whole tree, switch the HEAD as well
if not files: