diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2014-11-17 11:00:02 +0100 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2014-11-17 11:00:02 +0100 |
commit | 9eb902eee03806db5868fc84afb23aa28802e841 (patch) | |
tree | 9e557ba5b510b2d68046481e8d185321dd88860b /git/refs | |
parent | 322db077a693a513e79577a0adf94c97fc2be347 (diff) | |
parent | ba67e4ff74e97c4de5d980715729a773a48cd6bc (diff) | |
download | gitpython-9eb902eee03806db5868fc84afb23aa28802e841.tar.gz |
Merge branch 'firm1-0.3' into 0.3
This includes a few fixes to not break backwards compatiblity
Diffstat (limited to 'git/refs')
-rw-r--r-- | git/refs/log.py | 8 | ||||
-rw-r--r-- | git/refs/symbolic.py | 12 |
2 files changed, 15 insertions, 5 deletions
diff --git a/git/refs/log.py b/git/refs/log.py index 7249aec5..3bc42801 100644 --- a/git/refs/log.py +++ b/git/refs/log.py @@ -235,7 +235,8 @@ class RefLog(list, Serializable): """Append a new log entry to the revlog at filepath. :param config_reader: configuration reader of the repository - used to obtain - user information. May be None + user information. May also be an Actor instance identifying the committer directly. + May also be None :param filepath: full path to the log file :param oldbinsha: binary sha of the previous commit :param newbinsha: binary sha of the current commit @@ -249,8 +250,9 @@ class RefLog(list, Serializable): raise ValueError("Shas need to be given in binary format") #END handle sha type assure_directory_exists(filepath, is_file=True) - entry = RefLogEntry((bin_to_hex(oldbinsha), bin_to_hex(newbinsha), Actor.committer(config_reader), (int(time.time()), time.altzone), message)) - + committer = isinstance(config_reader, Actor) and config_reader or Actor.committer(config_reader) + entry = RefLogEntry((bin_to_hex(oldbinsha), bin_to_hex(newbinsha), committer, (int(time.time()), time.altzone), message)) + lf = LockFile(filepath) lf._obtain_lock_or_raise() diff --git a/git/refs/symbolic.py b/git/refs/symbolic.py index 9f9eb9f5..9a95b7f0 100644 --- a/git/refs/symbolic.py +++ b/git/refs/symbolic.py @@ -355,8 +355,16 @@ class SymbolicReference(object): :param newbinsha: The sha the ref points to now. If None, our current commit sha will be used :return: added RefLogEntry instance""" - return RefLog.append_entry(self.repo.config_reader(), RefLog.path(self), oldbinsha, - (newbinsha is None and self.commit.binsha) or newbinsha, + # NOTE: we use the committer of the currently active commit - this should be + # correct to allow overriding the committer on a per-commit level. + # See https://github.com/gitpython-developers/GitPython/pull/146 + try: + committer_or_reader = self.commit.committer + except ValueError: + committer_or_reader = self.repo.config_reader() + # end handle newly cloned repositories + return RefLog.append_entry(committer_or_reader, RefLog.path(self), oldbinsha, + (newbinsha is None and self.commit.binsha) or newbinsha, message) def log_entry(self, index): |