sapling/tests/integration/test-pushrebase-per-head-config.t
Jun Wu 150f6f7f6b mononoke: add bookmark config to disable pushrebase date rewrite
Summary:
There was a request about importing a GitHub repo into fbsource. While pushing
it to Mononoke with pushrebase disabled, the sync job broke because it can only
handle pushrebase pushes.

Before this diff, pushrebase has a repo-level config about whether dates need
to be rewritten. We definitely want "master" to have date rewritten turned on,
but not the imported commits. This diff adds logic to turn off date rewriting
for bookmarks by using the `rewrite_dates` config, to address the repo import
requirement.

Reviewed By: StanislavGlebik

Differential Revision: D15291030

fbshipit-source-id: 8dcf8359d7de9ac33f0af6f9ab3bcbac424323e4
2019-05-21 12:25:55 -07:00

82 lines
1.5 KiB
Perl

$ . $TESTDIR/library.sh
Setup
$ setup_common_config "blob:files"
$ cat >> repos/repo/server.toml << EOF
> [[bookmarks]]
> regex=".*"
> [[bookmarks]]
> name = "date-rewrite"
> rewrite_dates = true
> [[bookmarks]]
> name = "no-date-rewrite"
> rewrite_dates = false
> [[bookmarks]]
> name = "use-repo-config"
> [[bookmarks]]
> regex="..*"
> EOF
$ cd $TESTTMP
$ cat >> $HGRCPATH <<EOF
> [ui]
> ssh="$DUMMYSSH"
> [extensions]
> amend=
> pushrebase =
> EOF
Prepare the server-side repo
$ newrepo repo-hg
$ setup_hg_server
$ hg debugdrawdag <<EOF
> B
> |
> A
> EOF
- Create two bookmarks, one with rewritedate enabled, one disabled
$ hg bookmark date-rewrite -r B
$ hg bookmark no-date-rewrite -r B
$ hg bookmark use-repo-config -r B
- Import and start Mononoke (the Mononoke repo name is 'repo')
$ cd $TESTTMP
$ blobimport repo-hg/.hg repo
$ mononoke
$ wait_for_mononoke $TESTTMP/repo
Prepare the client-side repo
$ hgclone_treemanifest ssh://user@dummy/repo-hg client-repo --noupdate --config extensions.remotenames= -q
$ cd $TESTTMP/client-repo
$ hg debugdrawdag <<'EOS'
> E C D
> \|/
> A
> EOS
Push
$ hgmn push -r C --to date-rewrite -q
$ hgmn push -r D --to no-date-rewrite -q
$ hgmn push -r E --to use-repo-config -q
Check result
$ hg log -r 'desc(A)+desc(B)::' -G -T '{desc} {date}'
o E 0.00
|
| o D 0.00
|/
\| o C [1-9].* (re)
|/
o B 0.00
|
o A 0.00