mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
89c409af60
Since the Git to Mercurial conversion process is incremental, it's at risk of missing files, or recording files the wrong way, or recording the wrong commit metadata. Add a command called 'gverify' that can verify the contents of a particular Mercurial rev against the corresponding Git commit. Currently, this is limited to checking file names, flags and contents, but this can be made as robust as desired. Further additions will probably require refactoring git_handler.py a bit though. This function is pretty fast: on a Linux machine with a warm cache, verifying a repository with around 50,000 files takes just 20 seconds. There is scope for further improvement through parallelization, but conducting tree walks in parallel is non-trivial with the current worker infrastructure in Mercurial.
36 lines
1.0 KiB
Perl
36 lines
1.0 KiB
Perl
Load commonly used test logic
|
|
$ . "$TESTDIR/testutil"
|
|
|
|
$ git init gitrepo
|
|
Initialized empty Git repository in $TESTTMP/gitrepo/.git/
|
|
$ cd gitrepo
|
|
$ git commit --allow-empty -m empty >/dev/null 2>/dev/null || echo "git commit error"
|
|
|
|
$ cd ..
|
|
$ git init --bare gitrepo2
|
|
Initialized empty Git repository in $TESTTMP/gitrepo2/
|
|
|
|
$ hg clone gitrepo hgrepo | grep -v '^updating'
|
|
importing git objects into hg
|
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ cd hgrepo
|
|
$ hg log -r tip --template 'files: {files}\n'
|
|
files:
|
|
$ hg gverify
|
|
verifying rev 2c7bb41124ca against git commit 678256865a8c85ae925bf834369264193c88f8de
|
|
|
|
$ hg gclear
|
|
clearing out the git cache data
|
|
$ hg push ../gitrepo2
|
|
pushing to ../gitrepo2
|
|
searching for changes
|
|
adding objects
|
|
added 1 commits with 1 trees and 0 blobs
|
|
$ cd ..
|
|
$ git --git-dir=gitrepo2 log --pretty=medium
|
|
commit 678256865a8c85ae925bf834369264193c88f8de
|
|
Author: test <test@example.org>
|
|
Date: Mon Jan 1 00:00:00 2007 +0000
|
|
|
|
empty
|