зеркало из https://github.com/microsoft/git.git
replace: add test for --graft
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
4228e8bc98
Коммит
adf8e54238
|
@ -8,7 +8,7 @@ exec </dev/null
|
|||
|
||||
. ./test-lib.sh
|
||||
|
||||
add_and_commit_file()
|
||||
add_and_commit_file ()
|
||||
{
|
||||
_file="$1"
|
||||
_msg="$2"
|
||||
|
@ -18,6 +18,38 @@ add_and_commit_file()
|
|||
git commit --quiet -m "$_file: $_msg"
|
||||
}
|
||||
|
||||
commit_buffer_contains_parents ()
|
||||
{
|
||||
git cat-file commit "$1" >payload &&
|
||||
sed -n -e '/^$/q' -e '/^parent /p' <payload >actual &&
|
||||
shift &&
|
||||
for _parent
|
||||
do
|
||||
echo "parent $_parent"
|
||||
done >expected &&
|
||||
test_cmp expected actual
|
||||
}
|
||||
|
||||
commit_peeling_shows_parents ()
|
||||
{
|
||||
_parent_number=1
|
||||
_commit="$1"
|
||||
shift &&
|
||||
for _parent
|
||||
do
|
||||
_found=$(git rev-parse --verify $_commit^$_parent_number) || return 1
|
||||
test "$_found" = "$_parent" || return 1
|
||||
_parent_number=$(( $_parent_number + 1 ))
|
||||
done &&
|
||||
test_must_fail git rev-parse --verify $_commit^$_parent_number
|
||||
}
|
||||
|
||||
commit_has_parents ()
|
||||
{
|
||||
commit_buffer_contains_parents "$@" &&
|
||||
commit_peeling_shows_parents "$@"
|
||||
}
|
||||
|
||||
HASH1=
|
||||
HASH2=
|
||||
HASH3=
|
||||
|
@ -351,4 +383,15 @@ test_expect_success 'replace ref cleanup' '
|
|||
test -z "$(git replace)"
|
||||
'
|
||||
|
||||
test_expect_success '--graft with and without already replaced object' '
|
||||
test $(git log --oneline | wc -l) = 7 &&
|
||||
git replace --graft $HASH5 &&
|
||||
test $(git log --oneline | wc -l) = 3 &&
|
||||
commit_has_parents $HASH5 &&
|
||||
test_must_fail git replace --graft $HASH5 $HASH4 $HASH3 &&
|
||||
git replace --force -g $HASH5 $HASH4 $HASH3 &&
|
||||
commit_has_parents $HASH5 $HASH4 $HASH3 &&
|
||||
git replace -d $HASH5
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче