mirror of
https://github.com/facebook/sapling.git
synced 2024-10-12 01:39:21 +03:00
150f6f7f6b
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
82 lines
1.5 KiB
Perl
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
|
|
|