[PATCH v5 01/15] fast-export: avoid importing blob marks
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Nov 11, 2012, 13:59 UTC
- Message-ID
- <1352642392-28387-2-git-send-email-felipe.contreras@gmail.com>
- In-Reply-To
- <1352642392-28387-1-git-send-email-felipe.contreras@gmail.com>
We want to be able to import, and then export, using the same marks, so that we don't push things that the other side already received.
Unfortunately, fast-export doesn't store blobs in the marks, but fast-import does. This creates a mismatch when fast export is reusing a mark that was previously stored by fast-import.
There is no point in one tool saving blobs, and the other not, but for now let's just check in fast-export that the objects are indeed commits.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> --- builtin/fast-export.c | 4 ++++ t/t9350-fast-export.sh | 14 ++++++++++++++ 2 files changed, 18 insertions(+)
diff --git a/builtin/fast-export.c b/builtin/fast-export.c index 12220ad..a06fe10 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -614,6 +614,10 @@ static void import_marks(char *input_file) if (object->flags & SHOWN) error("Object %s already has a mark", sha1_to_hex(sha1)); + if (object->type != 1) + /* only commits */ + continue; + mark_object(object, mark); if (last_idnum < mark) last_idnum = mark; diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh index 3e821f9..0c8d828 100755 --- a/t/t9350-fast-export.sh +++ b/t/t9350-fast-export.sh @@ -440,4 +440,18 @@ test_expect_success 'fast-export quotes pathnames' ' ) ' +test_expect_success 'test biridectionality' ' + echo -n > marks-cur && + echo -n > marks-new && + git init marks-test && + git fast-export --export-marks=marks-cur --import-marks=marks-cur --branches | \ + git --git-dir=marks-test/.git fast-import --export-marks=marks-new --import-marks=marks-new && + (cd marks-test && + git reset --hard && + echo Wohlauf > file && + git commit -a -m "back in time") && + git --git-dir=marks-test/.git fast-export --export-marks=marks-new --import-marks=marks-new --branches | \ + git fast-import --export-marks=marks-cur --import-marks=marks-cur +' + test_done
-- 1.8.0