summaryrefslogtreecommitdiff
path: root/objects
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2010-11-24 21:33:36 +0100
committerSebastian Thiel <byronimo@gmail.com>2010-11-24 21:33:36 +0100
commit968ffb2c2e5c6066a2b01ad2a0833c2800880d46 (patch)
treea5f0b7417f39364d83409edf4d382c6a8c36ff49 /objects
parent3175b5b21194bcc8f4448abe0a03a98d3a4a1360 (diff)
downloadgitpython-968ffb2c2e5c6066a2b01ad2a0833c2800880d46.tar.gz
Adjusted all Head.create calls to set a logmessage similar to the one git uses
Diffstat (limited to 'objects')
-rw-r--r--objects/commit.py18
-rw-r--r--objects/submodule/root.py8
2 files changed, 17 insertions, 9 deletions
diff --git a/objects/commit.py b/objects/commit.py
index 9c7e66a3..883d6a6c 100644
--- a/objects/commit.py
+++ b/objects/commit.py
@@ -350,12 +350,12 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
# as well ...
import git.refs
try:
- repo.head.commit = new_commit
+ repo.head.set_commit(new_commit, logmsg="commit: %s" % message)
except ValueError:
# head is not yet set to the ref our HEAD points to
# Happens on first commit
import git.refs
- master = git.refs.Head.create(repo, repo.head.ref, commit=new_commit)
+ master = git.refs.Head.create(repo, repo.head.ref, commit=new_commit, logmsg="commit (initial): %s" % message)
repo.head.reference = master
# END handle empty repositories
# END advance head handling
@@ -382,7 +382,12 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
self.authored_date,
altz_to_utctz_str(self.author_tz_offset)))
- write(fmt % ("committer", c.name, c.email,
+ # encode committer
+ aname = c.name
+ if isinstance(aname, unicode):
+ aname = aname.encode(self.encoding)
+ # END handle unicode in name
+ write(fmt % ("committer", aname, c.email,
self.committed_date,
altz_to_utctz_str(self.committer_tz_offset)))
@@ -440,6 +445,13 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
print >> sys.stderr, "Failed to decode author name '%s' using encoding %s" % (self.author.name, self.encoding)
# END handle author's encoding
+ # decode committer name
+ try:
+ self.committer.name = self.committer.name.decode(self.encoding)
+ except UnicodeDecodeError:
+ print >> sys.stderr, "Failed to decode committer name '%s' using encoding %s" % (self.committer.name, self.encoding)
+ # END handle author's encoding
+
# a stream from our data simply gives us the plain message
# The end of our message stream is marked with a newline that we strip
self.message = stream.read()
diff --git a/objects/submodule/root.py b/objects/submodule/root.py
index d194cd5b..ca51b34e 100644
--- a/objects/submodule/root.py
+++ b/objects/submodule/root.py
@@ -207,12 +207,8 @@ class RootModule(Submodule):
smm = sm.module()
smmr = smm.remotes
try:
- tbr = git.Head.create(smm, sm.branch_name)
- except git.GitCommandError, e:
- if e.status != 128:
- raise
- #END handle something unexpected
-
+ tbr = git.Head.create(smm, sm.branch_name, logmsg='branch: Created from HEAD')
+ except OSError:
# ... or reuse the existing one
tbr = git.Head(smm, sm.branch_path)
#END assure tracking branch exists