Submitter | phabricator |
---|---|
Date | Feb. 26, 2018, 8:28 p.m. |
Message ID | <efb22f90dc8a6b613ff6205c7d2c5ef9@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/28419/ |
State | Not Applicable |
Headers | show |
Comments
Hello there, Can I get a little review on this :) On Tue, Feb 27, 2018 at 1:58 AM, khanchi97 (Sushil khanchi) < phabricator@mercurial-scm.org> wrote: > khanchi97 updated this revision to Diff 6132. > > REPOSITORY > rHG Mercurial > > CHANGES SINCE LAST UPDATE > https://phab.mercurial-scm.org/D2409?vs=6028&id=6132 > > REVISION DETAIL > https://phab.mercurial-scm.org/D2409 > > AFFECTED FILES > mercurial/commands.py > tests/test-graft.t > > CHANGE DETAILS > > diff --git a/tests/test-graft.t b/tests/test-graft.t > --- a/tests/test-graft.t > +++ b/tests/test-graft.t > @@ -1373,3 +1373,69 @@ > note: graft of 7:d3c3f2b38ecc created no changes to commit > > $ cd .. > + > +Graft a change from a branch without making any commit using --no-commit > option > + > + $ hg init dirtochecknocommit > + $ cd dirtochecknocommit > + $ echo a > a > + $ hg ci -qAm0 > + $ echo b > b > + $ hg ci -qAm1 > + $ hg up -q 0 > + $ echo c > c > + $ hg ci -qAm2 > + $ hg graft 1 --no-commit > + grafting 1:925d80f479bb "1" > + > + $ hg tip -T "rev: {rev}\n" > + rev: 2 > + > + $ hg diff > + diff -r db815d6d32e6 b > + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 > + +++ b/b Thu Jan 01 00:00:00 1970 +0000 > + @@ -0,0 +1,1 @@ > + +b > + > + $ hg ci -qm3 > + > +Make a conflict between two heads and check --no-commit is resepected > after --continue > + > + $ echo A>a > + $ hg ci -qm4 > + $ hg up -q 1 > + $ echo B>a > + $ hg ci -qm5 > + $ hg graft 4 --no-commit > + grafting 4:a08bb3910e7c "4" > + merging a > + warning: conflicts while merging a! (edit, then use 'hg resolve --mark') > + abort: unresolved conflicts, can't continue > + (use 'hg resolve' and 'hg graft --continue') > + [255] > + > +Edit: > + > + $ echo A>a > + $ hg resolve --mark > + (no more unresolved files) > + continue: hg graft --continue > + > +Continue: > + > + $ hg graft --continue > + grafting 4:a08bb3910e7c "4" > + > + $ hg tip -T "rev: {rev}\n" > + rev: 5 > + > + $ hg diff > + diff -r b1d5b5056844 a > + --- a/a Thu Jan 01 00:00:00 1970 +0000 > + +++ b/a Thu Jan 01 00:00:00 1970 +0000 > + @@ -1,1 +1,1 @@ > + -B > + +A > + > + $ cd .. > diff --git a/mercurial/commands.py b/mercurial/commands.py > --- a/mercurial/commands.py > +++ b/mercurial/commands.py > @@ -2074,6 +2074,8 @@ > ('c', 'continue', False, _('resume interrupted graft')), > ('e', 'edit', False, _('invoke editor on commit messages')), > ('', 'log', None, _('append graft info to log message')), > + ('', 'no-commit', None, > + _("don't commit, just apply the changes in working directory")), > ('f', 'force', False, _('force graft')), > ('D', 'currentdate', False, > _('record the current date as commit date')), > @@ -2153,6 +2155,9 @@ > revs = list(revs) > revs.extend(opts.get('rev')) > > + if opts.get('no_commit'): > + # write out flag for --continue > + repo.vfs.write('nocommitflag','do not commit\n') > if not opts.get('user') and opts.get('currentuser'): > opts['user'] = ui.username() > if not opts.get('date') and opts.get('currentdate'): > @@ -2314,16 +2319,18 @@ > cont = False > > # commit > - node = repo.commit(text=message, user=user, > - date=date, extra=extra, editor=editor) > - if node is None: > - ui.warn( > - _('note: graft of %d:%s created no changes to commit\n') % > - (ctx.rev(), ctx)) > + if not repo.vfs.exists('nocommitflag'): > + node = repo.commit(text=message, user=user, > + date=date, extra=extra, editor=editor) > + if node is None: > + ui.warn( > + _('note: graft of %d:%s created no changes to > commit\n') % > + (ctx.rev(), ctx)) > > # remove state when we complete successfully > if not opts.get('dry_run'): > repo.vfs.unlinkpath('graftstate', ignoremissing=True) > + repo.vfs.unlinkpath('nocommitflag', ignoremissing=True) > > return 0 > > > > > To: khanchi97, #hg-reviewers > Cc: pulkit, mercurial-devel > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel >
Patch
diff --git a/tests/test-graft.t b/tests/test-graft.t --- a/tests/test-graft.t +++ b/tests/test-graft.t @@ -1373,3 +1373,69 @@ note: graft of 7:d3c3f2b38ecc created no changes to commit $ cd .. + +Graft a change from a branch without making any commit using --no-commit option + + $ hg init dirtochecknocommit + $ cd dirtochecknocommit + $ echo a > a + $ hg ci -qAm0 + $ echo b > b + $ hg ci -qAm1 + $ hg up -q 0 + $ echo c > c + $ hg ci -qAm2 + $ hg graft 1 --no-commit + grafting 1:925d80f479bb "1" + + $ hg tip -T "rev: {rev}\n" + rev: 2 + + $ hg diff + diff -r db815d6d32e6 b + --- /dev/null Thu Jan 01 00:00:00 1970 +0000 + +++ b/b Thu Jan 01 00:00:00 1970 +0000 + @@ -0,0 +1,1 @@ + +b + + $ hg ci -qm3 + +Make a conflict between two heads and check --no-commit is resepected after --continue + + $ echo A>a + $ hg ci -qm4 + $ hg up -q 1 + $ echo B>a + $ hg ci -qm5 + $ hg graft 4 --no-commit + grafting 4:a08bb3910e7c "4" + merging a + warning: conflicts while merging a! (edit, then use 'hg resolve --mark') + abort: unresolved conflicts, can't continue + (use 'hg resolve' and 'hg graft --continue') + [255] + +Edit: + + $ echo A>a + $ hg resolve --mark + (no more unresolved files) + continue: hg graft --continue + +Continue: + + $ hg graft --continue + grafting 4:a08bb3910e7c "4" + + $ hg tip -T "rev: {rev}\n" + rev: 5 + + $ hg diff + diff -r b1d5b5056844 a + --- a/a Thu Jan 01 00:00:00 1970 +0000 + +++ b/a Thu Jan 01 00:00:00 1970 +0000 + @@ -1,1 +1,1 @@ + -B + +A + + $ cd .. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2074,6 +2074,8 @@ ('c', 'continue', False, _('resume interrupted graft')), ('e', 'edit', False, _('invoke editor on commit messages')), ('', 'log', None, _('append graft info to log message')), + ('', 'no-commit', None, + _("don't commit, just apply the changes in working directory")), ('f', 'force', False, _('force graft')), ('D', 'currentdate', False, _('record the current date as commit date')), @@ -2153,6 +2155,9 @@ revs = list(revs) revs.extend(opts.get('rev')) + if opts.get('no_commit'): + # write out flag for --continue + repo.vfs.write('nocommitflag','do not commit\n') if not opts.get('user') and opts.get('currentuser'): opts['user'] = ui.username() if not opts.get('date') and opts.get('currentdate'): @@ -2314,16 +2319,18 @@ cont = False # commit - node = repo.commit(text=message, user=user, - date=date, extra=extra, editor=editor) - if node is None: - ui.warn( - _('note: graft of %d:%s created no changes to commit\n') % - (ctx.rev(), ctx)) + if not repo.vfs.exists('nocommitflag'): + node = repo.commit(text=message, user=user, + date=date, extra=extra, editor=editor) + if node is None: + ui.warn( + _('note: graft of %d:%s created no changes to commit\n') % + (ctx.rev(), ctx)) # remove state when we complete successfully if not opts.get('dry_run'): repo.vfs.unlinkpath('graftstate', ignoremissing=True) + repo.vfs.unlinkpath('nocommitflag', ignoremissing=True) return 0