From 131b09940b5ec0e1dc8ca7a8b4d0f274810b660b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Wed, 13 Oct 2010 17:35:23 +0200 Subject: [PATCH] be able to tag from a git commit id. Like: module-tag sfa:264136dd1e53fdd5e63105564e71d9533547526f --- module-tools.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/module-tools.py b/module-tools.py index f14da959..fc2598ed 100755 --- a/module-tools.py +++ b/module-tools.py @@ -269,7 +269,7 @@ class GitRepository: repo = line.split()[2] @classmethod - def checkout(cls, remote, local, options, depth=1): + def checkout(cls, remote, local, options, depth=0): Command("rm -rf %s" % local, options).run_silent() Command("git clone --depth %d %s %s" % (depth, remote, local), options).run_fatal() return GitRepository(local, options) @@ -298,6 +298,13 @@ class GitRepository: else: return self.__run_in_repo(c.run_fatal) + def __is_commit_id(self, id): + c = Command("git show %s | grep commit | awk '{print $2;}'" % id, self.options) + ret = self.__run_in_repo(c.output_of, with_stderr=False) + if ret.strip() == id: + return True + return False + def update(self, subdir=None, recursive=None, branch="master"): if branch == "master": self.__run_command_in_repo("git checkout %s" % branch) @@ -305,7 +312,9 @@ class GitRepository: self.to_branch(branch, remote=True) self.__run_command_in_repo("git fetch origin --tags") self.__run_command_in_repo("git fetch origin") - self.__run_command_in_repo("git merge --ff origin/%s" % branch) + if not self.__is_commit_id(branch): + # we don't need to merge anythign for commit ids. + self.__run_command_in_repo("git merge --ff origin/%s" % branch) def to_branch(self, branch, remote=True): self.revert() -- 2.47.0