- branch.checkout()
- repo.git.rebase(self.commit)
- print "...done",
- if repo.head.reference.commit != repo.refs[self.commit].commit:
- print "(keeping local patches around)",
- print
+ git.checkout(branchname, get_stderr=True)
+ if mode == MODE_RESET:
+ git.reset("--hard", self.commit)
+ else:
+ git.rebase(self.commit)
+ # update submodules
+ git.submodule("update", "--init", "--recursive", "--rebase")
+ # done
+ print("...done", end=' ')
+ if git.rev_parse("HEAD") != git.rev_parse(self.commit):
+ print("(keeping local patches around)", end=' ')
+ print()
+
+ def version(self):
+ v = git.describe()
+ return v[len(get_non_digit_prefix(v)):] # remove the non-digit prefix from v (so that it starts with a number)
+
+ def checkVersions(self):
+ self.update(mode = MODE_FETCH)
+ currentVersion = git.describe()
+ # get sorted list of tag names with the same non-digit prefix and higher version number
+ tags = git.tag().split('\n')
+ tags = [t for t in tags if get_non_digit_prefix(t) == get_non_digit_prefix(currentVersion) and natural_sort_key(t) > natural_sort_key(currentVersion)]
+ if not tags: return
+ tags.sort(key = natural_sort_key)
+ print("Versions newer than "+currentVersion+" available:")
+ print(tags)