def _git_date(date):
- return '%d %s' % (date, time.strftime('%z', time.localtime(date)))
+ return '%d %s' % (date, utc_offset_str(date))
def _gitenv(repo_dir = None):
return None
-def update_ref(refname, newval, oldval):
- """Change the commit pointed to by a branch."""
+def update_ref(refname, newval, oldval, repo_dir=None):
+ """Update a repository reference."""
if not oldval:
oldval = ''
- assert(refname.startswith('refs/heads/'))
+ assert(refname.startswith('refs/heads/') \
+ or refname.startswith('refs/tags/'))
p = subprocess.Popen(['git', 'update-ref', refname,
newval.encode('hex'), oldval.encode('hex')],
+ preexec_fn = _gitenv(repo_dir))
+ _git_wait('git update-ref', p)
+
+
+def delete_ref(refname):
+ """Delete a repository reference."""
+ assert(refname.startswith('refs/'))
+ p = subprocess.Popen(['git', 'update-ref', '-d', refname],
preexec_fn = _gitenv())
_git_wait('git update-ref', p)