summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Holdsworth <jholdsworth@nvidia.com>2021-12-22 14:55:52 (GMT)
committerJunio C Hamano <gitster@pobox.com>2021-12-22 21:43:32 (GMT)
commit0fe3df45f2818d15ec5d542948f08eb035846d08 (patch)
tree83ab543a841ba4aa1386298f5924d6b36d03e79f
parentfb8dfc1ccbc60ea26c63f01071c6809c89d907e5 (diff)
downloadgit-0fe3df45f2818d15ec5d542948f08eb035846d08.zip
git-0fe3df45f2818d15ec5d542948f08eb035846d08.tar.gz
git-0fe3df45f2818d15ec5d542948f08eb035846d08.tar.bz2
git-p4: remove "rollback" verb
The "rollback" verb implements a simple algorithm which takes the set of remote perforce tracker branches, or optionally, the complete collection of local branches in a git repository, and deletes commits from these branches until there are no commits left with a perforce change number greater than than a user-specified change number. If the base of a git branch has a newer change number than the user-specified maximum, then the branch is deleted. In future, there might be an argument for the addition of some kind of "reset this branch back to a given perforce change number" verb for git-p4. However, in its current form it is unlikely to be useful to users for the following reasons: * The verb is completely undocumented. The only description provided contains the following text: "A tool to debug the multi-branch import. Don't use :)". * The verb has a very narrow purpose in that it applies the rollback operation to fixed sets of branches - either all remote p4 branches, or all local branches. There is no way for users to specify branches with more granularity, for example, allowing users to specify a single branch or a set of branches. The utility of the current implementation is therefore a niche within a niche. Given these shortcomings, this patch removes the verb from git-p4. Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py60
1 files changed, 0 insertions, 60 deletions
diff --git a/git-p4.py b/git-p4.py
index b7ed8e4..a7cb321 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -1532,65 +1532,6 @@ class P4UserMap:
except IOError:
self.getUserMapFromPerforceServer()
-class P4RollBack(Command):
- def __init__(self):
- Command.__init__(self)
- self.options = [
- optparse.make_option("--local", dest="rollbackLocalBranches", action="store_true")
- ]
- self.description = "A tool to debug the multi-branch import. Don't use :)"
- self.rollbackLocalBranches = False
-
- def run(self, args):
- if len(args) != 1:
- return False
- maxChange = int(args[0])
-
- if "p4ExitCode" in p4Cmd("changes -m 1"):
- die("Problems executing p4");
-
- if self.rollbackLocalBranches:
- refPrefix = "refs/heads/"
- lines = read_pipe_lines("git rev-parse --symbolic --branches")
- else:
- refPrefix = "refs/remotes/"
- lines = read_pipe_lines("git rev-parse --symbolic --remotes")
-
- for line in lines:
- if self.rollbackLocalBranches or (line.startswith("p4/") and line != "p4/HEAD\n"):
- line = line.strip()
- ref = refPrefix + line
- log = extractLogMessageFromGitCommit(ref)
- settings = extractSettingsGitLog(log)
-
- depotPaths = settings['depot-paths']
- change = settings['change']
-
- changed = False
-
- if len(p4Cmd("changes -m 1 " + ' '.join (['%s...@%s' % (p, maxChange)
- for p in depotPaths]))) == 0:
- print("Branch %s did not exist at change %s, deleting." % (ref, maxChange))
- system("git update-ref -d %s `git rev-parse %s`" % (ref, ref))
- continue
-
- while change and int(change) > maxChange:
- changed = True
- if self.verbose:
- print("%s is at %s ; rewinding towards %s" % (ref, change, maxChange))
- system("git update-ref %s \"%s^\"" % (ref, ref))
- log = extractLogMessageFromGitCommit(ref)
- settings = extractSettingsGitLog(log)
-
-
- depotPaths = settings['depot-paths']
- change = settings['change']
-
- if changed:
- print("%s rewound to %s" % (ref, change))
-
- return True
-
class P4Submit(Command, P4UserMap):
conflict_behavior_choices = ("ask", "skip", "quit")
@@ -4353,7 +4294,6 @@ commands = {
"sync" : P4Sync,
"rebase" : P4Rebase,
"clone" : P4Clone,
- "rollback" : P4RollBack,
"branches" : P4Branches,
"unshelve" : P4Unshelve,
}