[git] Update to 1.7.12.1

Adam Tkac atkac at fedoraproject.org
Thu Sep 27 16:10:28 UTC 2012


commit 7fba5bee2ca88a7cc627b389a16d0f01f23ced9a
Author: Adam Tkac <atkac at redhat.com>
Date:   Thu Sep 27 18:10:11 2012 +0200

    Update to 1.7.12.1
    
    - cvsimport should skip more characters (#850640)
    
    Signed-off-by: Adam Tkac <atkac at redhat.com>

 ...mport-strip-all-inappropriate-tag-strings.patch |   71 ++++++++++++++++++++
 git.spec                                           |   11 +++-
 sources                                            |    2 +-
 3 files changed, 81 insertions(+), 3 deletions(-)
---
diff --git a/0001-cvsimport-strip-all-inappropriate-tag-strings.patch b/0001-cvsimport-strip-all-inappropriate-tag-strings.patch
new file mode 100644
index 0000000..db85fe9
--- /dev/null
+++ b/0001-cvsimport-strip-all-inappropriate-tag-strings.patch
@@ -0,0 +1,71 @@
+From 70b67b0792375c59f60f3e24f2d6757b24dc719c Mon Sep 17 00:00:00 2001
+From: Ken Dreyer <ktdreyer at ktdreyer.com>
+Date: Thu, 6 Sep 2012 10:36:53 -0600
+Subject: [PATCH] cvsimport: strip all inappropriate tag strings
+
+Certain characters such as "?" can be present in a CVS tag name, but
+git does not allow these characters in tags. If git-cvsimport
+encounters a CVS tag that git cannot handle, cvsimport will error and
+refuse to continue the import beyond that point.
+
+When importing CVS tags, strip all the inappropriate strings from the
+tag names as we translate them to git tag names.
+
+Provide more debugging information to the user if we've altered the
+tag and the "git tag" command still fails. Also, warn the user if we
+end up skipping an (unusable) tag altogether.
+
+Signed-off-by: Ken Dreyer <ktdreyer at ktdreyer.com>
+Signed-off-by: Junio C Hamano <gitster at pobox.com>
+---
+ git-cvsimport.perl | 33 ++++++++++++++++++++++++++++++---
+ 1 file changed, 30 insertions(+), 3 deletions(-)
+
+diff --git a/git-cvsimport.perl b/git-cvsimport.perl
+index 8d41610..8032f23 100755
+--- a/git-cvsimport.perl
++++ b/git-cvsimport.perl
+@@ -889,10 +889,37 @@ sub commit {
+ 		$xtag =~ s/\s+\*\*.*$//; # Remove stuff like ** INVALID ** and ** FUNKY **
+ 		$xtag =~ tr/_/\./ if ( $opt_u );
+ 		$xtag =~ s/[\/]/$opt_s/g;
+-		$xtag =~ s/\[//g;
+ 
+-		system('git' , 'tag', '-f', $xtag, $cid) == 0
+-			or die "Cannot create tag $xtag: $!\n";
++		# See refs.c for these rules.
++		# Tag cannot contain bad chars. (See bad_ref_char in refs.c.)
++		$xtag =~ s/[ ~\^:\\\*\?\[]//g;
++		# Other bad strings for tags:
++		# (See check_refname_component in refs.c.)
++		1 while $xtag =~ s/
++			(?: \.\.        # Tag cannot contain '..'.
++			|   \@{         # Tag cannot contain '@{'.
++			| ^ -           # Tag cannot begin with '-'.
++			|   \.lock $    # Tag cannot end with '.lock'.
++			| ^ \.          # Tag cannot begin...
++			|   \. $        # ...or end with '.'
++			)//xg;
++		# Tag cannot be empty.
++		if ($xtag eq '') {
++			warn("warning: ignoring tag '$tag'",
++			" with invalid tagname\n");
++			return;
++		}
++
++		if (system('git' , 'tag', '-f', $xtag, $cid) != 0) {
++			# We did our best to sanitize the tag, but still failed
++			# for whatever reason. Bail out, and give the user
++			# enough information to understand if/how we should
++			# improve the translation in the future.
++			if ($tag ne $xtag) {
++				print "Translated '$tag' tag to '$xtag'\n";
++			}
++			die "Cannot create tag $xtag: $!\n";
++		}
+ 
+ 		print "Created tag '$xtag' on '$branch'\n" if $opt_v;
+ 	}
+-- 
+1.7.12
+
diff --git a/git.spec b/git.spec
index ab9f3e2..d110a86 100644
--- a/git.spec
+++ b/git.spec
@@ -70,8 +70,8 @@
 %endif
 
 Name:           git
-Version:        1.7.12
-Release:        2%{?dist}
+Version:        1.7.12.1
+Release:        1%{?dist}
 Summary:        Fast Version Control System
 License:        GPLv2
 Group:          Development/Tools
@@ -87,6 +87,8 @@ Patch0:         git-1.5-gitweb-home-link.patch
 Patch1:         git-cvsimport-Ignore-cvsps-2.2b1-Branches-output.patch
 # https://bugzilla.redhat.com/600411
 Patch3:         git-1.7-el5-emacs-support.patch
+Patch4:         0001-cvsimport-strip-all-inappropriate-tag-strings.patch
+
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires:  desktop-file-utils
@@ -316,6 +318,7 @@ Requires:       emacs-git = %{version}-%{release}
 %if %{emacs_old}
 %patch3 -p1
 %endif
+%patch4 -p1
 
 # Use these same options for every invocation of 'make'.
 # Otherwise it will rebuild in %%install due to flags changes.
@@ -577,6 +580,10 @@ rm -rf %{buildroot}
 # No files for you!
 
 %changelog
+* Thu Sep 27 2012 Adam Tkac <atkac redhat com> - 1.7.12.1-1
+- update to 1.7.12.1
+- cvsimport should skip more characters (#850640)
+
 * Thu Aug 23 2012 Todd Zullinger <tmz at pobox.com> - 1.7.12-2
 - Install git-prompt.sh which provides __git_ps1()
 
diff --git a/sources b/sources
index 2cf7105..ebd32f8 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-ceb1a6b17a3e33bbc70eadf8fce5876c  git-1.7.12.tar.gz
+1c16e94ca43c2811806567ed6e73d704  git-1.7.12.1.tar.gz


More information about the scm-commits mailing list