зеркало из https://github.com/microsoft/git.git
vcs-svn: Reject path nodes without Node-action
It would be better to flag such errors and let the import proceed anyway, but for now it is simpler not to worry about recovery from such weird cases. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
1c7bb31616
Коммит
414e569e45
|
@ -252,6 +252,26 @@ test_expect_success 'directory with files' '
|
|||
test_cmp hi directory/file2
|
||||
'
|
||||
|
||||
test_expect_success 'node without action' '
|
||||
cat >inaction.dump <<-\EOF &&
|
||||
SVN-fs-dump-format-version: 3
|
||||
|
||||
Revision-number: 1
|
||||
Prop-content-length: 10
|
||||
Content-length: 10
|
||||
|
||||
PROPS-END
|
||||
|
||||
Node-path: directory
|
||||
Node-kind: dir
|
||||
Prop-content-length: 10
|
||||
Content-length: 10
|
||||
|
||||
PROPS-END
|
||||
EOF
|
||||
test_must_fail test-svn-fe inaction.dump
|
||||
'
|
||||
|
||||
test_expect_failure 'change file mode but keep old content' '
|
||||
reinit_git &&
|
||||
cat >expect <<-\EOF &&
|
||||
|
|
|
@ -174,7 +174,8 @@ static void handle_node(void)
|
|||
|
||||
if (node_ctx.srcRev) {
|
||||
repo_copy(node_ctx.srcRev, node_ctx.src, node_ctx.dst);
|
||||
node_ctx.action = NODEACT_CHANGE;
|
||||
if (node_ctx.action == NODEACT_ADD)
|
||||
node_ctx.action = NODEACT_CHANGE;
|
||||
}
|
||||
|
||||
if (mark && type == REPO_MODE_DIR)
|
||||
|
@ -182,8 +183,10 @@ static void handle_node(void)
|
|||
|
||||
if (node_ctx.action == NODEACT_CHANGE)
|
||||
node_ctx.type = repo_modify_path(node_ctx.dst, 0, mark);
|
||||
else /* Node-action: add */
|
||||
else if (node_ctx.action == NODEACT_ADD)
|
||||
repo_add(node_ctx.dst, type, mark);
|
||||
else
|
||||
die("invalid dump: Node-path block lacks Node-action");
|
||||
|
||||
if (have_props) {
|
||||
const uint32_t old_mode = node_ctx.type;
|
||||
|
|
Загрузка…
Ссылка в новой задаче