Accepting request 1077730 from devel:tools:scm
OBS-URL: https://build.opensuse.org/request/show/1077730 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/git?expand=0&rev=296
This commit is contained in:
commit
1bf742ba11
@ -1,3 +1,8 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 6 10:51:06 UTC 2023 - Adam Majer <adam.majer@suse.de>
|
||||
|
||||
- sha256_clone_fix.patch: fix cloning of empty sha256 repositories
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Mar 13 20:08:03 UTC 2023 - Andreas Stieger <andreas.stieger@gmx.de>
|
||||
|
||||
|
1
git.spec
1
git.spec
@ -61,6 +61,7 @@ Patch4: git-prevent_xss-default.diff
|
||||
Patch6: git-tcsh-completion-fixes.diff
|
||||
Patch8: git-asciidoc.patch
|
||||
Patch10: setup-don-t-fail-if-commondir-reference-is-deleted.patch
|
||||
Patch11: sha256_clone_fix.patch
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: gpg2
|
||||
BuildRequires: libcurl-devel
|
||||
|
76
sha256_clone_fix.patch
Normal file
76
sha256_clone_fix.patch
Normal file
@ -0,0 +1,76 @@
|
||||
commit 8b214c2e9dda8fc5b8d49b978fd2c155b7596cd0
|
||||
Author: Junio C Hamano <gitster@pobox.com>
|
||||
Date: Wed Apr 5 14:15:33 2023 -0700
|
||||
|
||||
clone: propagate object-format when cloning from void
|
||||
|
||||
A user could prepare an empty repository and set it to use SHA256 as
|
||||
the object format. The new repository created by "git clone" from
|
||||
such a repository however would not record that it is expecting
|
||||
objects in the same SHA256 format. This works as expected if the
|
||||
source repository is not empty.
|
||||
|
||||
Just like we started copying the name of the primary branch from the
|
||||
remote repository even if it is unborn in 3d8314f8 (clone: propagate
|
||||
empty remote HEAD even with other branches, 2022-07-07), lift the
|
||||
code that records the object format out of the block executed only
|
||||
when cloning from an instantiated repository, so that it works also
|
||||
when cloning from an empty repository.
|
||||
|
||||
Signed-off-by: Junio C Hamano <gitster@pobox.com>
|
||||
|
||||
diff --git a/builtin/clone.c b/builtin/clone.c
|
||||
index 462c286274..8f16d18a43 100644
|
||||
--- a/builtin/clone.c
|
||||
+++ b/builtin/clone.c
|
||||
@@ -910,6 +910,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
||||
int err = 0, complete_refs_before_fetch = 1;
|
||||
int submodule_progress;
|
||||
int filter_submodules = 0;
|
||||
+ int hash_algo;
|
||||
|
||||
struct transport_ls_refs_options transport_ls_refs_options =
|
||||
TRANSPORT_LS_REFS_OPTIONS_INIT;
|
||||
@@ -1298,15 +1299,15 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
|
||||
}
|
||||
}
|
||||
|
||||
- if (mapped_refs) {
|
||||
- int hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport));
|
||||
-
|
||||
/*
|
||||
* Now that we know what algorithm the remote side is using,
|
||||
* let's set ours to the same thing.
|
||||
*/
|
||||
- initialize_repository_version(hash_algo, 1);
|
||||
- repo_set_hash_algo(the_repository, hash_algo);
|
||||
+ hash_algo = hash_algo_by_ptr(transport_get_hash_algo(transport));
|
||||
+ initialize_repository_version(hash_algo, 1);
|
||||
+ repo_set_hash_algo(the_repository, hash_algo);
|
||||
+
|
||||
+ if (mapped_refs) {
|
||||
/*
|
||||
* transport_get_remote_refs() may return refs with null sha-1
|
||||
* in mapped_refs (see struct transport->get_refs_list
|
||||
diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh
|
||||
index 71aabe30b7..6af5c2062f 100755
|
||||
--- a/t/t5702-protocol-v2.sh
|
||||
+++ b/t/t5702-protocol-v2.sh
|
||||
@@ -269,6 +269,17 @@ test_expect_success 'clone propagates unborn HEAD from non-empty repo' '
|
||||
grep "warning: remote HEAD refers to nonexistent ref" stderr
|
||||
'
|
||||
|
||||
+test_expect_success 'clone propagates object-format from empty repo' '
|
||||
+ test_when_finished "rm -fr src256 dst256" &&
|
||||
+
|
||||
+ echo sha256 >expect &&
|
||||
+ git init --object-format=sha256 src256 &&
|
||||
+ git clone src256 dst256 &&
|
||||
+ git -C dst256 rev-parse --show-object-format >actual &&
|
||||
+
|
||||
+ test_cmp expect actual
|
||||
+'
|
||||
+
|
||||
test_expect_success 'bare clone propagates unborn HEAD from non-empty repo' '
|
||||
test_when_finished "rm -rf file_unborn_parent file_unborn_child.git" &&
|
||||
|
Loading…
Reference in New Issue
Block a user