~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for multipart messages to import
[stgit]
/
stgit
/
git.py
diff --git
a/stgit/git.py
b/stgit/git.py
index
907c82d
..
5f3f030
100644
(file)
--- a/
stgit/git.py
+++ b/
stgit/git.py
@@
-22,6
+22,7
@@
import sys, os, popen2, re, gitmergeonefile
from stgit import basedir
from stgit.utils import *
from stgit import basedir
from stgit.utils import *
+from stgit.config import config
# git exception class
class GitException(Exception):
# git exception class
class GitException(Exception):
@@
-59,7
+60,11
@@
class Commit:
return self.__tree
def get_parent(self):
return self.__tree
def get_parent(self):
- return self.get_parents()[0]
+ parents = self.get_parents()
+ if parents:
+ return parents[0]
+ else:
+ return None
def get_parents(self):
return _output_lines('git-rev-list --parents --max-count=1 %s'
def get_parents(self):
return _output_lines('git-rev-list --parents --max-count=1 %s'
@@
-74,6
+79,9
@@
class Commit:
def get_log(self):
return self.__log
def get_log(self):
return self.__log
+ def __str__(self):
+ return self.get_id_hash()
+
# dictionary of Commit objects, used to avoid multiple calls to git
__commits = dict()
# dictionary of Commit objects, used to avoid multiple calls to git
__commits = dict()
@@
-436,7
+444,9
@@
def commit(message, files = None, parents = None, allowempty = False,
raise GitException, 'No changes to commit'
# get the commit message
raise GitException, 'No changes to commit'
# get the commit message
- if message[-1:] != '\n':
+ if not message:
+ message = '\n'
+ elif message[-1:] != '\n':
message += '\n'
must_switch = True
message += '\n'
must_switch = True
@@
-685,22
+695,24
@@
def pull(repository = 'origin', refspec = None):
if refspec:
args.append(refspec)
if refspec:
args.append(refspec)
- if __run(
'git-pull'
, args) != 0:
+ if __run(
config.get('stgit', 'pullcmd')
, args) != 0:
raise GitException, 'Failed "git-pull %s"' % repository
raise GitException, 'Failed "git-pull %s"' % repository
-def apply_patch(filename = None, base = None):
+def apply_patch(filename = None,
diff = None,
base = None):
"""Apply a patch onto the current or given index. There must not
be any local changes in the tree, otherwise the command fails
"""
def __apply_patch():
"""Apply a patch onto the current or given index. There must not
be any local changes in the tree, otherwise the command fails
"""
def __apply_patch():
- if filename:
- return __run('git-apply --index', [filename]) == 0
- else:
- try:
+ try:
+ if filename:
+ return __run('git-apply --index', [filename]) == 0
+ elif diff:
+ _input_str('git-apply --index', diff)
+ else:
_input('git-apply --index', sys.stdin)
_input('git-apply --index', sys.stdin)
-
except GitException:
-
return False
-
return True
+ except GitException:
+ return False
+ return True
if base:
orig_head = get_head()
if base:
orig_head = get_head()