Mercurial > hg-git
changeset 168:8bfa8aa6b68f
added empty changelog handling
author | Scott Chacon <schacon@gmail.com> |
---|---|
date | Mon, 01 Jun 2009 20:17:11 -0700 |
parents | cb5beb432e78 |
children | d67d00738298 |
files | TODO.txt __init__.py git_handler.py hgrepo.py |
diffstat | 4 files changed, 20 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/TODO.txt Mon Jun 01 15:15:43 2009 -0700 +++ b/TODO.txt Mon Jun 01 20:17:11 2009 -0700 @@ -1,9 +1,10 @@ GENERAL ========== -* fully integrate as native protocol handler +* fully integrate as native protocol handler (see hgsubversion) - hg push git@... - hg fetch [remote] (remote is url, hg alias or hg-git remote) - hg clone url + * work fine with eclipse plugin or tortoise-hg MAPPING ISSUES
--- a/__init__.py Mon Jun 01 15:15:43 2009 -0700 +++ b/__init__.py Mon Jun 01 20:17:11 2009 -0700 @@ -20,8 +20,10 @@ from git_handler import GitHandler # support for `hg clone git://github.com/defunkt/facebox.git` +# also hg clone git+ssh://git@github.com/schacon/simplegit.git import gitrepo, hgrepo hg.schemes['git'] = gitrepo +hg.schemes['git+ssh'] = gitrepo hg.schemes['file'] = hgrepo def gclone(ui, git_url, hg_repo_path=None):
--- a/git_handler.py Mon Jun 01 15:15:43 2009 -0700 +++ b/git_handler.py Mon Jun 01 20:17:11 2009 -0700 @@ -294,8 +294,11 @@ # save file context listing on merge commit if (len(parents) > 1): add_extras = True - for filenm in ctx.files(): - extra_message += "files : " + filenm + "\n" + if len(ctx.files()) > 0: + for filenm in ctx.files(): + extra_message += "files : " + filenm + "\n" + else: # hack for 'fetch' extension idiocy + extra_message += "emptychangelog : true\n" if add_extras: commit['message'] += "\n--HG--\n" + extra_message @@ -656,6 +659,8 @@ branch = data if command == 'files': files.append(data) + if command == 'emptychangelog': + files = False if command == 'extra': before, after = data.split(" : ", 1) extra[before] = urllib.unquote(after) @@ -695,7 +700,7 @@ def commit_octopus(p1, p2): ctx = context.memctx(self.repo, (p1, p2), text, files, getfilectx, commit.author, date, {'hg-git': 'octopus'}) - return hex(self.repo.commitctx(ctx, None)) + return hex(self.repo.commitctx(ctx)) octopus = len(gparents) > 2 p2 = gparents.pop() @@ -740,7 +745,7 @@ ctx = context.memctx(self.repo, (p1, p2), text, files, getfilectx, author, date, extra) - node = self.repo.commitctx(ctx, pa, force_files) + node = self.repo.commit_import_ctx(ctx, pa, force_files) # save changeset to mapping file cs = hex(node)
--- a/hgrepo.py Mon Jun 01 15:15:43 2009 -0700 +++ b/hgrepo.py Mon Jun 01 20:17:11 2009 -0700 @@ -4,7 +4,7 @@ class hgrepo(localrepo.localrepository): - def commitctx(self, wctx, ancestor, force_files = False): + def commit_import_ctx(self, wctx, ancestor, force_files = None): tr = None valid = 0 # don't save the dirstate if this isn't set @@ -99,10 +99,13 @@ text = '\n'.join(lines) file_list = [] - if len(force_files) > 0: - file_list = force_files + if force_files == False: + file_list = [] else: - file_list = changed + removed + if force_files and len(force_files) > 0: + file_list = force_files + else: + file_list = changed + removed self.changelog.delayupdate() n = self.changelog.add(mn, file_list, text, trp, p1, p2,