Accepting request 1091063 from devel:tools:scm

OBS-URL: https://build.opensuse.org/request/show/1091063
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/git?expand=0&rev=299
This commit is contained in:
Dominique Leuenberger 2023-06-07 21:06:05 +00:00 committed by Git OBS Bridge
commit 9251bd89d5
7 changed files with 22 additions and 104 deletions

Binary file not shown.

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4893b8b98eefc9fdc4b0e7ca249e340004faa7804a433d17429e311e1fef21d2
size 7185260

BIN
git-2.41.0.tar.sign Normal file

Binary file not shown.

3
git-2.41.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e748bafd424cfe80b212cbc6f1bbccc3a47d4862fb1eb7988877750478568040
size 7273624

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Sat Jun 3 15:59:19 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>
- git 2.41.0: This update contains a number of compatible updates,
improvements and extensions to multiple workflows. Some changes
may break backwards compatibility:
* The libsecret credential helper obsoletes direct GNOME keyring
support, which was dropped (git-credential-gnome-keyring)
* "git format-patch" has been taught to ignore end-user
configuration ("diff.noprefix") and always use the standard
prefixes, to avoid breaking the receiving end of the patch
- drop sha256_clone_fix.patch
-------------------------------------------------------------------
Tue Apr 25 20:43:30 UTC 2023 - Andreas Stieger <Andreas.Stieger@gmx.de>

View File

@ -27,7 +27,6 @@
%if ! %{defined _fillupdir}
%define _fillupdir %{_localstatedir}/adm/fillup-templates
%endif
%bcond_without git_gnome_keyring
%bcond_without git_libsecret
%bcond_without docs
%if 0%{?suse_version} >= 1500 && %{with docs}
@ -36,7 +35,7 @@
%bcond_with asciidoctor
%endif
Name: git
Version: 2.40.1
Version: 2.41.0
Release: 0
Summary: Fast, scalable, distributed revision control system
License: GPL-2.0-only
@ -61,7 +60,6 @@ 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
@ -70,6 +68,7 @@ BuildRequires: libopenssl-devel
BuildRequires: pcre2-devel
BuildRequires: perl-Error
BuildRequires: perl-MailTools
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: systemd-rpm-macros
BuildRequires: tcsh
@ -97,9 +96,6 @@ BuildRequires: docbook5-xsl-stylesheets
BuildRequires: asciidoc
%endif
%endif
%if %{with git_gnome_keyring}
BuildRequires: libgnome-keyring-devel
%endif
%if %{with git_libsecret}
BuildRequires: libsecret-devel
%endif
@ -190,24 +186,20 @@ Supplements: (%{name} and cvs)
%description cvs
Tools for importing CVS repositories to the Git version control system.
%package credential-gnome-keyring
Summary: Git credential backend using the GNOME keyring as storage
Group: Development/Tools/Version Control
Requires: git-core = %{version}
Requires: gnome-keyring
%description credential-gnome-keyring
A Git credential backend which uses the GNOME keyring as storage.
%if %{with git_libsecret}
%package credential-libsecret
Summary: Git credential backend using libsecret to access keyring
Group: Development/Tools/Version Control
Requires: git-core = %{version}
Obsoletes: git-credential-gnome-keyring < %{version}
%description credential-libsecret
A Git credential backend which uses libsecret API to acces keyrings such as
kwallet or GNOME keyring.
%endif
%package arch
Summary: Git tools for importing Arch repositories
Group: Development/Tools/Version Control
@ -355,9 +347,6 @@ chmod 755 .make
./.make doc %{?_smp_mflags}
%endif
%if %{with git_gnome_keyring}
./.make -C contrib/credential/gnome-keyring
%endif
%if %{with git_libsecret}
./.make -C contrib/credential/libsecret
%endif
@ -404,9 +393,6 @@ install -m 644 -D contrib/completion/git-prompt.sh %{buildroot}%{_datadir}/bash-
mkdir -p %{buildroot}/%{_sysconfdir}/bash_completion.d/
install -m 644 %{SOURCE12} %{buildroot}/%{_sysconfdir}/bash_completion.d/git-prompt
# contrib/credential
%if %{with git_gnome_keyring}
install -m 755 -D contrib/credential/gnome-keyring/git-credential-gnome-keyring %{buildroot}/%{gitexecdir}/git-credential-gnome-keyring
%endif
%if %{with git_libsecret}
install -m 755 -D contrib/credential/libsecret/git-credential-libsecret %{buildroot}/%{gitexecdir}/git-credential-libsecret
%endif
@ -504,11 +490,6 @@ fi
%{gitexecdir}/*cvs*
%{!?_without_docs: %{_mandir}/man1/*cvs*.1*}
%if %{with git_gnome_keyring}
%files credential-gnome-keyring
%{gitexecdir}/git-credential-gnome-keyring
%endif
%if %{with git_libsecret}
%files credential-libsecret
%{gitexecdir}/git-credential-libsecret

View File

@ -1,76 +0,0 @@
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" &&