From 7fba5bee2ca88a7cc627b389a16d0f01f23ced9a Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Thu, 27 Sep 2012 18:10:11 +0200 Subject: Update to 1.7.12.1 - cvsimport should skip more characters (#850640) Signed-off-by: Adam Tkac --- ...mport-strip-all-inappropriate-tag-strings.patch | 71 ++++++++++++++++++++++ git.spec | 11 +++- sources | 2 +- 3 files changed, 81 insertions(+), 3 deletions(-) create mode 100644 0001-cvsimport-strip-all-inappropriate-tag-strings.patch 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 +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 +Signed-off-by: Junio C Hamano +--- + 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 - 1.7.12.1-1 +- update to 1.7.12.1 +- cvsimport should skip more characters (#850640) + * Thu Aug 23 2012 Todd Zullinger - 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 -- cgit