Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gitolite for openSUSE:Factory checked in at 2026-03-18 16:50:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gitolite (Old) and /work/SRC/openSUSE:Factory/.gitolite.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gitolite" Wed Mar 18 16:50:09 2026 rev:14 rq:1340792 version:3.6.14 Changes: -------- --- /work/SRC/openSUSE:Factory/gitolite/gitolite.changes 2024-02-05 22:01:46.816271009 +0100 +++ /work/SRC/openSUSE:Factory/.gitolite.new.8177/gitolite.changes 2026-03-18 16:51:32.567636532 +0100 @@ -1,0 +2,6 @@ +Tue Mar 17 22:16:59 UTC 2026 - Dirk Müller <[email protected]> + +- update to 3.6.14: + * detect HEAD name in admin repo (don't require it be "master") + +------------------------------------------------------------------- Old: ---- gitolite-3.6.13.tar.gz New: ---- gitolite-3.6.14.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gitolite.spec ++++++ --- /var/tmp/diff_new_pack.fThnrA/_old 2026-03-18 16:51:33.491675238 +0100 +++ /var/tmp/diff_new_pack.fThnrA/_new 2026-03-18 16:51:33.495675405 +0100 @@ -1,7 +1,7 @@ # # spec file for package gitolite # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define gitolite_homedir /srv/gitolite %define git_user git Name: gitolite -Version: 3.6.13 +Version: 3.6.14 Release: 0 Summary: Server for git directory version tracker License: GPL-2.0-or-later ++++++ gitolite-3.6.13.tar.gz -> gitolite-3.6.14.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/.__rc new/gitolite-3.6.14/.__rc --- old/gitolite-3.6.13/.__rc 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/.__rc 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -glp rm -rf /tmp/gitolite.git; umask 022; git clone --bare . /tmp/gitolite.git diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/CHANGELOG new/gitolite-3.6.14/CHANGELOG --- old/gitolite-3.6.13/CHANGELOG 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/CHANGELOG 2025-07-18 10:44:16.000000000 +0200 @@ -1,3 +1,7 @@ +2025-07-18 v3.6.14 only one important fix: + + detect HEAD name in admin repo (don't require it be "master") + 2023-07-14 v3.6.13 only one important fix: remove the "description" file on new repos, to fix a bug diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/contrib/lib/Apache/gitolite.conf new/gitolite-3.6.14/contrib/lib/Apache/gitolite.conf --- old/gitolite-3.6.13/contrib/lib/Apache/gitolite.conf 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/contrib/lib/Apache/gitolite.conf 2025-07-18 10:44:16.000000000 +0200 @@ -11,6 +11,7 @@ ScriptAlias /git/ /var/www/gitolite-home/gitolite-source/src/gitolite-shell/ ScriptAlias /gitmob/ /var/www/gitolite-home/gitolite-source/src/gitolite-shell/ SetEnv GITOLITE_HTTP_HOME /var/www/gitolite-home +# WARNING: do not add a trailing slash to the value of GITOLITE_HTTP_HOME SetEnv GIT_HTTP_EXPORT_ALL # Setup LDAP trusted root certificate from your domain diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/src/lib/Gitolite/Common.pm new/gitolite-3.6.14/src/lib/Gitolite/Common.pm --- old/gitolite-3.6.13/src/lib/Gitolite/Common.pm 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/src/lib/Gitolite/Common.pm 2025-07-18 10:44:16.000000000 +0200 @@ -246,13 +246,39 @@ } } +# 2025-06-12 -- this function is the only one in "core" gitolite [1] to have +# support for Windows systems. This is because one of gitolite's +# "contributed" features, which is nevertheless very useful, is the "testconf" +# feature [2] and [3]. The thing is, testconf is designed to run gitolite **on the +# client machine**, which is at least for some people, Windows. +# So yeah, a bit of tail wagging the dog, allowing a "contrib" feature to make +# changes to "core" gitolite, and that too for an OS we don't support as a +# server, but it is what it is. At least we have managed to isolate the +# change sufficiently. + +# [1]: https://gitolite.com/gitolite/internals.html#what-is-core +# [2]: https://gitolite.com/gitolite/conf-2.html#appendix-3-embedding-test-code-in-your-conf +# [3]: https://github.com/sitaramc/gitolite/blob/master/contrib/utils/testconf sub update_hook_present { my $repo = shift; return 1 unless -d "$ENV{GL_REPO_BASE}/$repo.git"; # non-existent repo is fine - my $x = readlink("$ENV{GL_REPO_BASE}/$repo.git/hooks/update"); - return 1 if $x and $x eq "$ENV{GL_ADMIN_BASE}/hooks/common/update"; + my $repo_hook = "$ENV{GL_REPO_BASE}/$repo.git/hooks/update"; + my $common_hook = "$ENV{GL_ADMIN_BASE}/hooks/common/update"; + + if ($^O eq 'msys') { + # No symlinks on Windows. Please see important note placed just before this function. + my $repo_update_text = slurp($repo_hook) if -f $repo_hook; + my $common_update_text = slurp($common_hook) if -f $common_hook; + + return 1 if $repo_update_text and $common_update_text and $repo_update_text eq $common_update_text; + + return 0; + } + + my $x = readlink($repo_hook); + return 1 if $x and $x eq $common_hook; return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/src/lib/Gitolite/Hooks/PostUpdate.pm new/gitolite-3.6.14/src/lib/Gitolite/Hooks/PostUpdate.pm --- old/gitolite-3.6.13/src/lib/Gitolite/Hooks/PostUpdate.pm 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/src/lib/Gitolite/Hooks/PostUpdate.pm 2025-07-18 10:44:16.000000000 +0200 @@ -20,23 +20,27 @@ sub post_update { trace( 3, 'post-up', @ARGV ); - exit 0 unless grep( m(^refs/heads/master$), @ARGV ); + + my $master=`git symbolic-ref HEAD`; chomp $master; + + exit 0 unless grep( $_ eq $master, @ARGV ); # this is the *real* post_update hook for gitolite + $master =~ s(.*/)(); - tsh_try("git ls-tree --name-only master"); + tsh_try("git ls-tree --name-only $master"); _die "no files/dirs called 'hooks' or 'logs' are allowed" if tsh_text() =~ /^(hooks|logs)$/m; my $hooks_changed = 0; { local $ENV{GIT_WORK_TREE} = $rc{GL_ADMIN_BASE}; - tsh_try("git diff --name-only master"); + tsh_try("git diff --name-only $master"); $hooks_changed++ if tsh_text() =~ m(/hooks/common/); # the leading slash ensure that this hooks/common directory is below # some top level directory, not *at* the top. That's LOCAL_CODE, and # it's actual name could be anything but it doesn't matter to us. - tsh_try("git checkout -f --quiet master"); + tsh_try("git checkout -f --quiet $master"); } _system("gitolite compile"); _system("gitolite setup --hooks-only") if $hooks_changed; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/src/lib/Gitolite/Triggers/Mirroring.pm new/gitolite-3.6.14/src/lib/Gitolite/Triggers/Mirroring.pm --- old/gitolite-3.6.13/src/lib/Gitolite/Triggers/Mirroring.pm 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/src/lib/Gitolite/Triggers/Mirroring.pm 2025-07-18 10:44:16.000000000 +0200 @@ -194,15 +194,16 @@ sub copies { my $repo = shift; + my %out; my $ref = git_config( $repo, "^gitolite-options\\.mirror\\.copies.*" ); - my %out = map { $_ => 'async' } map { split } values %$ref; + map { $out{$_} = 'async' } map { split } values %$ref; - $ref = git_config( $repo, "^gitolite-options\\.mirror\\.copies\\.sync.*" ); - map { $out{$_} = 'sync' } map { split } values %$ref; - - $ref = git_config( $repo, "^gitolite-options\\.mirror\\.copies\\.nosync.*" ); - map { $out{$_} = 'nosync' } map { split } values %$ref; + my @sync_types = qw(sync async nosync nosync-quiet); + foreach my $sync_type ( @sync_types ) { + $ref = git_config( $repo, "^gitolite-options\\.mirror\\.copies\\.${sync_type}.*" ); + map { $out{$_} = $sync_type } map { split } values %$ref; + } return %out; } @@ -237,9 +238,18 @@ my $lb = "$ENV{GL_REPO_BASE}/$repo.git/.gl-mirror-lock"; for my $s ( sort keys %copies ) { trace( 1, "push_to_copies skipping self" ), next if $s eq $hn; - system("gitolite 1plus1 $lb.$s gitolite mirror push $s $repo </dev/null >/dev/null 2>&1 &") if $copies{$s} eq 'async'; - system("gitolite 1plus1 $lb.$s gitolite mirror push $s $repo </dev/null >/dev/null 2>&1") if $copies{$s} eq 'sync'; - _warn "manual mirror push pending for '$s'" if $copies{$s} eq 'nosync'; + my $mirror_command = "gitolite 1plus1 $lb.$s gitolite mirror push $s $repo </dev/null >/dev/null 2>&1"; + if ($copies{$s} eq 'async') { + system($mirror_command . " &"); + } elsif ($copies{$s} eq 'sync') { + system($mirror_command); + } elsif ($copies{$s} eq 'nosync') { + _warn "manual mirror push pending for '$s'"; + } elsif ($copies{$s} eq 'nosync-quiet') { + 1; + } else { + _warn "unknown mirror copy type $copies{$s} for '$s'"; + } } $ENV{GL_USER} = $u; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/t/fedora-root-smart-http-test-setup new/gitolite-3.6.14/t/fedora-root-smart-http-test-setup --- old/gitolite-3.6.13/t/fedora-root-smart-http-test-setup 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/t/fedora-root-smart-http-test-setup 2025-07-18 10:44:16.000000000 +0200 @@ -24,6 +24,7 @@ cd ~apache # should be /usr/share/httpd; you may want to check just to be safe export GITOLITE_HTTP_HOME=$PWD/gitolite-home +# WARNING: do not add a trailing slash to the value of GITOLITE_HTTP_HOME [[ -d gitolite-home ]] && { [[ $GITOLITE_TEST != y ]] && { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/t/manjaro-root-smart-http-test-setup new/gitolite-3.6.14/t/manjaro-root-smart-http-test-setup --- old/gitolite-3.6.13/t/manjaro-root-smart-http-test-setup 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/t/manjaro-root-smart-http-test-setup 2025-07-18 10:44:16.000000000 +0200 @@ -43,6 +43,7 @@ cd ~http # should be /srv/http; you may want to check just to be safe export GITOLITE_HTTP_HOME=$PWD/gitolite-home +# WARNING: do not add a trailing slash to the value of GITOLITE_HTTP_HOME [[ -d gitolite-home ]] && { [[ $GITOLITE_TEST != y ]] && { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/t/smart-http.root-setup new/gitolite-3.6.14/t/smart-http.root-setup --- old/gitolite-3.6.13/t/smart-http.root-setup 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/t/smart-http.root-setup 2025-07-18 10:44:16.000000000 +0200 @@ -46,6 +46,7 @@ rm -rf gitolite-home mkdir gitolite-home export GITOLITE_HTTP_HOME=$PWD/gitolite-home +# WARNING: do not add a trailing slash to the value of GITOLITE_HTTP_HOME # get the gitolite sources cd gitolite-home diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gitolite-3.6.13/t/ssh-authkeys.t new/gitolite-3.6.14/t/ssh-authkeys.t --- old/gitolite-3.6.13/t/ssh-authkeys.t 2023-07-14 05:02:24.000000000 +0200 +++ new/gitolite-3.6.14/t/ssh-authkeys.t 2025-07-18 10:44:16.000000000 +0200 @@ -33,7 +33,7 @@ ssh-keygen -N '' -q -f alice -C alice ssh-keygen -N '' -q -f bob -C bob ssh-keygen -N '' -q -f carol -C carol - ssh-keygen -N '' -q -f dave -C dave + ssh-keygen -N '' -q -f dave -C dave -t rsa ssh-keygen -N '' -q -f eve -C eve rm alice bob carol dave eve ls -a; ok; /alice.pub/; /bob.pub/; /carol.pub/; /dave.pub/; /eve.pub/
