From patchwork Mon Mar 20 12:11:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: ui: restrict length of autogenerated blocked tags From: Simon Farnsworth X-Patchwork-Id: 19474 Message-Id: <4e7a3cc6b4e4253aeb17.1490011917@devvm022.lla2.facebook.com> To: Date: Mon, 20 Mar 2017 05:11:57 -0700 # HG changeset patch # User Simon Farnsworth # Date 1490011701 25200 # Mon Mar 20 05:08:21 2017 -0700 # Node ID 4e7a3cc6b4e4253aeb1754f0a8b3b080bccf3196 # Parent 291951ad070b3fa39dd1d83503aa1011a20d9a21 ui: restrict length of autogenerated blocked tags Long autogenerated blocked tags tend to be because the command has an absolute path; at Facebook, we've had a few where the tag is thousands of characters long (in association with the mergedriver). Change the default to use a suffix of a command as the default tag, limiting us to 85 characters (for a 100 character tag). This is long enough to overflow a standard terminal (thus be obviously autogenerated), but short enough to be readable. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1234,7 +1234,10 @@ object as exception. ''' if blockedtag is None: - blockedtag = 'unknown_system_' + cmd.translate(None, _keepalnum) + # Long cmds tend to be because of an absolute path on cmd. Keep + # the tail end instead + cmdsuffix = cmd.translate(None, _keepalnum)[-85:] + blockedtag = 'unknown_system_' + cmdsuffix out = self.fout if any(s[1] for s in self._bufferstates): out = self