diff options
| author | W. Trevor King <wking@tremily.us> | 2017-10-10 15:49:51 -0700 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-12-11 09:07:09 -0400 |
| commit | 7ef3b65376b87829441736f04b3231021f561d84 (patch) | |
| tree | 6eaa873be8f7a71ee2423f3e74cee9b35f94e0be /devel | |
| parent | 0a1558471f70ec8591c9d40808d1ffd930742054 (diff) | |
nmbug: Auto-checkout in clone if it wouldn't clobber
We currently auto-checkout after pull and merge to make those more
convenient. They're guarded against data-loss with a leading
_insist_committed(). This commit adds the same convenience to clone,
since in most cases users will have no NMBPREFIX-prefixed tags in
their database when they clone. Users that *do* have
NMBPREFIX-prefixed tags will get a warning (and I've bumped the
default log level to warning so folks who don't set --log-level will
see it) like:
$ nmbug clone http://nmbug.notmuchmail.org/git/nmbug-tags.git
Cloning into '/tmp/nmbug-clone.g9dvd0tv'...
Checking connectivity: 16674, done.
Branch config set up to track remote branch config from origin.
Not checking out to avoid clobbering existing tags: notmuch::0.25, ...
Diffstat (limited to 'devel')
| -rwxr-xr-x | devel/nmbug/nmbug | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/devel/nmbug/nmbug b/devel/nmbug/nmbug index c0e7c3c6..0cd91148 100755 --- a/devel/nmbug/nmbug +++ b/devel/nmbug/nmbug @@ -54,7 +54,7 @@ except ImportError: # Python 2 __version__ = '0.2' _LOG = _logging.getLogger('nmbug') -_LOG.setLevel(_logging.ERROR) +_LOG.setLevel(_logging.WARNING) _LOG.addHandler(_logging.StreamHandler()) NMBGIT = _os.path.expanduser( @@ -311,6 +311,13 @@ def clone(repository): _git(args=['config', '--unset', 'core.worktree'], wait=True, expect=(0, 5)) _git(args=['config', 'core.bare', 'true'], wait=True) _git(args=['branch', 'config', 'origin/config'], wait=True) + existing_tags = get_tags() + if existing_tags: + _LOG.warning( + 'Not checking out to avoid clobbering existing tags: {}'.format( + ', '.join(existing_tags))) + else: + checkout() def _is_committed(status): |
