D2873: remotenames: add functionality to override -B flag of push

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Fri Mar 23 14:56:05 EDT 2018


indygreg requested changes to this revision.
indygreg added a comment.
This revision now requires changes to proceed.


  I'm happy with this feature.
  
  But the code needs work around multiple revisions/heads before it can be queued.

INLINE COMMENTS

> remotenames.py:99
> +    bookmark = pushop.bookmarks[0]
> +    rev = pushop.revs[0]
> +

What happens if we're pushing multiple heads? I suspect this will choose a head/revision arbitrarily - maybe depending on the `-r` arguments to `hg push`.

I think we need to validate that the outgoing revs are in a single DAG head and we should then pick the rev that is the DAG head.

Please add test coverage for multiple `-r` arguments and `-r` arguments that resolve to multiple heads.

> remotenames.py:101
> +
> +    # allow new bookmark only if --create is specified
> +    old = ''

Nit: what is `--create`?

> remotenames.py:287
>      extensions.wrapfunction(bookmarks, '_printbookmarks', wrapprintbookmarks)
> +    exchange.pushdiscoverymapping['bookmarks'] = expushdiscoverybookmarks
>  

Strictly speaking, we should probably wrap `exchange._pushdiscoverybookmarks` so other extensions can get involved. But I think this is fine.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2873

To: pulkit, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel


More information about the Mercurial-devel mailing list