doc/fast-import: document feature import-marks-if-exists

fast-import command-line option --import-marks-if-exists was introduced in commit dded4f1 (fast-import: Introduce --import-marks-if-exists, 2011-01-15) --import-marks option can be set via a "feature" command in a fast-import stream and --import-marks-if-exists had support for such specification from the very beginning too due to some shared codebase. Though the documentation for this feature wasn't written in dded4f1. Add the documentation for "feature import-marks-if-exists=<file>". Also add a minimalistic test for it. Signed-off-by: Dmitry Ivankov <divanorama@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Dmitry Ivankov committed Aug 17, 2011 at 16:42 UTC 3beb4fc461e72f0b93ae233dcc1cece0046b8eb8
2 files changed +54 -3
Documentation/git-fast-import.txt
+7 -3
@@ -995,10 +995,14 @@ force::
995 (see OPTIONS, above).
996
997 import-marks::
998 +import-marks-if-exists::
999 Like --import-marks except in two respects: first, only one
999 - "feature import-marks" command is allowed per stream;
1000 - second, an --import-marks= command-line option overrides
1001 - any "feature import-marks" command in the stream.
1000 + "feature import-marks" or "feature import-marks-if-exists"
1001 + command is allowed per stream; second, an --import-marks=
1002 + or --import-marks-if-exists command-line option overrides
1003 + any of these "feature" commands in the stream; third,
1004 + "feature import-marks-if-exists" like a corresponding
1005 + command-line option silently skips a nonexistent file.
1006
1007 cat-blob::
1008 ls::
t/t9300-fast-import.sh
+47
@@ -1882,6 +1882,53 @@ test_expect_success 'R: --import-marks-if-exists' '
1882 test_cmp expect io.marks
1883 '
1884
1885 +test_expect_success 'R: feature import-marks-if-exists' '
1886 + rm -f io.marks &&
1887 + >expect &&
1888 +
1889 + git fast-import --export-marks=io.marks <<-\EOF &&
1890 + feature import-marks-if-exists=not_io.marks
1891 + EOF
1892 + test_cmp expect io.marks &&
1893 +
1894 + blob=$(echo hi | git hash-object --stdin) &&
1895 +
1896 + echo ":1 $blob" >io.marks &&
1897 + echo ":1 $blob" >expect &&
1898 + echo ":2 $blob" >>expect &&
1899 +
1900 + git fast-import --export-marks=io.marks <<-\EOF &&
1901 + feature import-marks-if-exists=io.marks
1902 + blob
1903 + mark :2
1904 + data 3
1905 + hi
1906 +
1907 + EOF
1908 + test_cmp expect io.marks &&
1909 +
1910 + echo ":3 $blob" >>expect &&
1911 +
1912 + git fast-import --import-marks=io.marks \
1913 + --export-marks=io.marks <<-\EOF &&
1914 + feature import-marks-if-exists=not_io.marks
1915 + blob
1916 + mark :3
1917 + data 3
1918 + hi
1919 +
1920 + EOF
1921 + test_cmp expect io.marks &&
1922 +
1923 + >expect &&
1924 +
1925 + git fast-import --import-marks-if-exists=not_io.marks \
1926 + --export-marks=io.marks <<-\EOF
1927 + feature import-marks-if-exists=io.marks
1928 + EOF
1929 + test_cmp expect io.marks
1930 +'
1931 +
1932 cat >input << EOF
1933 feature import-marks=marks.out
1934 feature export-marks=marks.new