wait=True)
_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)
+ (status, stdout, stderr) = _git(args=['show-ref', '--verify',
+ '--quiet',
+ 'refs/remotes/origin/config'],
+ expect=(0,1),
+ wait=True)
+ if status == 0:
+ _git(args=['branch', 'config', 'origin/config'], wait=True)
existing_tags = get_tags()
if existing_tags:
_LOG.warning(
_git(args=args, wait=True)
+def init(remote=None):
+ """
+ Create an empty nmbug repository.
+
+ This wraps 'git init' with a few extra steps to support subsequent
+ status and commit commands.
+ """
+ _spawn(args=['git', '--git-dir', NMBGIT, 'init', '--bare'], wait=True)
+ _git(args=['config', 'core.logallrefupdates', 'true'], wait=True)
+ # create an empty blob (e69de29bb2d1d6434b8b29ae775ad8c2e48c5391)
+ _git(args=['hash-object', '-w', '--stdin'], input='', wait=True)
+ _git(
+ args=[
+ 'commit', '--allow-empty', '-m', 'Start a new nmbug repository'
+ ],
+ additional_env={'GIT_WORK_TREE': NMBGIT},
+ wait=True)
+
+
def checkout():
"""
Update the notmuch database from Git.
'commit',
'fetch',
'help',
+ 'init',
'log',
'merge',
'pull',
level = getattr(_logging, args.log_level.upper())
_LOG.setLevel(level)
+ # for test suite
+ for var in ['NMBGIT', 'NMBPREFIX', 'NOTMUCH_PROFILE', 'NOTMUCH_CONFIG' ]:
+ _LOG.debug('env {:s} = {:s}'.format(var, _os.getenv(var,'%None%')))
+
if not getattr(args, 'func', None):
parser.print_usage()
_sys.exit(1)