Hello community, here is the log from the commit of package git for openSUSE:Factory checked in at Sat Jul 4 10:12:05 CEST 2009. -------- --- git/git.changes 2009-06-05 10:15:32.000000000 +0200 +++ git/git.changes 2009-06-22 14:17:49.000000000 +0200 @@ -1,0 +2,15 @@ +Mon Jun 22 13:08:41 CEST 2009 - tiwai@suse.de + +- updated to 1.6.3.3: + * fix "git daemon" to correctly parse the initial line + * fix "git diff --textconv" memory leak + * improved the built-in regular expressions + * fix import-tars script (in contrib) to import symbolic links + * fix http.c to use correct CURLOPT_SSLKEY + * fix low-level filelevel merge driver + * fix "git rebase -i" left stray closing parenthesis in reflog + * fix "git remote show" to show all the URLs associated with named + remotes + * fix "whitespace" attribute handling + +------------------------------------------------------------------- calling whatdependson for head-i586 Old: ---- git-1.6.3.2.tar.bz2 New: ---- git-1.6.3.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ git.spec ++++++ --- /var/tmp/diff_new_pack.k13893/_old 2009-07-04 10:10:29.000000000 +0200 +++ /var/tmp/diff_new_pack.k13893/_new 2009-07-04 10:10:29.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package git (Version 1.6.3.2) +# spec file for package git (Version 1.6.3.3) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -36,7 +36,7 @@ %endif BuildRequires: sgml-skel BuildRequires: xmlto -Version: 1.6.3.2 +Version: 1.6.3.3 Release: 1 Summary: Fast, scalable, distributed revision control system License: GPL v2 or later @@ -418,452 +418,3 @@ /etc/bash_completion.d/git.sh %changelog -* Fri Jun 05 2009 tiwai@suse.de -- updated to 1.6.3.1: - * fix regression of "git checkout -b new-branch" -- updated to 1.6.3.2: - * fixes for gcc4.4 builds and others. See below for details - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.3.2.txt -* Fri May 08 2009 tiwai@suse.de -- updated to 1.6.3: - * major version update: git push behavior change, - With the next major release, "git push" into a branch that is - currently checked out will be refused by default. You can - choose what should happen upon such a push by setting the - configuration - * Detailed changelog found at - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.3.txt -* Mon Apr 20 2009 tiwai@suse.de -- updated to 1.6.2.4: - * The configuration parser had a buffer overflow while parsing - an overlong value. - * pruning reflog entries that are unreachable from the tip of - the ref during "git reflog prune" (hence "git gc") was very - inefficient. - * "git-add -p" lacked a way to say "q"uit to refuse staging any - hunks for the remaining paths. You had to say "d" and then ^C. - * "git-checkout <tree-ish> <submodule>" did not update the index - entry at the named path; it now does. - * "git-fast-export" choked when seeing a tag that does not point - at commit. - * "git init" segfaulted when given an overlong template location - via the --template= option. - * "git-ls-tree" and "git-diff-tree" used a pathspec correctly - when deciding to descend into a subdirectory but they did not - match the individual paths correctly. This caused pathspecs - "abc/d ab" to match "abc/0" ("abc/d" made them decide to - descend into the directory "abc/", and then "ab" incorrectly - matched "abc/0" when it shouldn't). - * "git-merge-recursive" was broken when a submodule entry was - involved in a criss-cross merge situation. -* Thu Apr 16 2009 tiwai@suse.de -- updated to 1.6.2.2: - * A longstanding confusing description of what --pickaxe option - of git-diff does has been clarified in the documentation. - * "git-blame -S" did not quite work near the commits that were - given on the command line correctly. - * "git diff --pickaxe-regexp" did not count overlapping matches - correctly. - * "git diff" did not feed files in work-tree representation to - external diff and textconv. - * "git-fetch" in a repository that was not cloned from anywhere - said it cannot find 'origin', which was hard to understand for - new people. - * "git-format-patch --numbered-files --stdout" did not have to - die of incompatible options; it now simply ignores - --numbered-files as no files are produced anyway. - * "git-ls-files --deleted" did not work well with GIT_DIR&GIT_WORK_TREE. - * "git-read-tree A B C..." without -m option has been broken for - a long time. - * git-send-email ignored --in-reply-to when --no-thread was given. - * 'git-submodule add' did not tolerate extra slashes and ./ in - the path it accepted from the command line; it now is more lenient. - * git-svn misbehaved when the project contained a path that began - with two dashes. - * import-zips script (in contrib) did not compute the common - directory prefix correctly. - * miscompilation of negated enum constants by old gcc (2.9) - affected the codepaths to spawn subprocesses. -- updated to 1.6.2.3: - * Setting an octal mode value to core.sharedrepository - configuration to restrict access to the repository to group - members did not work as advertised. - * A fairly large and trivial memory leak while rev-list shows - list of reachable objects has been identified and plugged. - * "git-commit --interactive" did not abort when underlying - "git-add -i" signaled a failure. - * git-repack (invoked from git-gc) did not work as nicely as it - should in a repository that borrows objects from neighbours - via alternates mechanism especially when some packs are marked - with the ".keep" flag to prevent them from being repacked. -- fix the start-check in git-daemon script (bnc#494824) -* Mon Mar 16 2009 tiwai@suse.de -- updated to 1.6.2.1: - * .gitignore learned to handle backslash as a quoting mechanism - for comment introduction character "#". - * timestamp output in --date=relative mode used to display - timestamps that are long time ago in the default mode - * git-add -i/-p now works with non-ASCII pathnames. - * "git hash-object -w" did not read from the configuration file - from the correct .git directory. - * git-send-email learned to correctly handle multiple Cc: - addresses. -* Thu Mar 05 2009 tiwai@suse.de -- updated to 1.6.2: - * @{-1} is a way to refer to the last branch you were on. - * The location of .mailmap file can be configured - * Improvements on "git add -p" - * Improvements on "git am" behavior and options - * "git blame" aligns author names better - * "git clone" now makes its best effort when cloning from an - empty repository - * "git checkout -" is a shorthand for "git checkout @{-1}". - * "git cherry" defaults to whatever the current branch is - tracking (if exists) when the <upstream> argument is not given. - * "git cvsserver" fixes / improvements - * New options for "git diff" - * New options for "git filter-branch" - * "git fsck" now checks loose objects in alternate object - stores - * "git gc --prune" was resurrected to allow "git gc --no-prune" - * New option for "git mergetool" - * "git rebase -i" can transplant a history down to root - * "git reset --merge" option - * "git submodule update" learned --no-fetch option. - * "git tag" learned --contains - For more details, see - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.2.txt -* Mon Feb 09 2009 tiwai@suse.de -- updated to 1.6.1.3: - * "git diff --binary | git apply" pipeline did not work well - when a binary blob is changed to a symbolic link. - * some combinations of -b/-w/--ignore-space-at-eol to "git diff" - did not work as expected. - * "git grep" did not pass the -I (ignore binary) option when - calling out an external grep program. - * "git log" and friends include HEAD to the set of starting - points when --all is given. This makes a difference when you - are not on any branch. - * "git mv" to move an untracked file to overwrite a tracked - contents misbehaved. - * "git merge -s octopus" with many potential merge bases did not - work correctly. - * RPM binary package installed the html manpages in a wrong - place. - Also includes minor documentation fixes and updates. -* Thu Jan 29 2009 schwab@suse.de -- Formatting fix for manual pages. -* Thu Jan 29 2009 tiwai@suse.de -- updated to 1.6.1.2: - * The logic for rename detectin in internal diff used by commands - like "git diff" and "git blame" have been optimized to avoid - loading the same blob repeatedly. - * We did not allow writing out a blob that is larger than 2GB - for no good reason. - * "git format-patch -o $dir", when $dir is a relative directory, - used it as relative to the root of the work tree, not relative - to the current directory. - * v1.6.1 introduced an optimization for "git push" into a - repository (A) that borrows its objects from another - repository (B) to avoid sending objects that are available in - repository B, when they are not yet used by repository A. - However the code on the "git push" sender side was buggy and - did not work when repository B had new objects that are not - known by the sender. This caused pushing into a "forked" - repository served by v1.6.1 software using "git push" from - v1.6.1 sometimes did not work. The bug was purely on the - "git push" sender side, and has been corrected. - * "git status -v" did not paint its diff output in colour even - when color.ui configuration was set. - * "git ls-tree" learned --full-tree option to help Porcelain - scripts that want to always see the full path regardless of the - current working directory. - * "git grep" incorrectly searched in work tree paths even when - they are marked as assume-unchanged. It now searches in the - index entries. - * "git gc" with no grace period needlessly ejected packed but - unreachable objects in their loose form, only to delete them - right away. -* Mon Jan 26 2009 tiwai@suse.de -- updated to 1.6.1.1: - * "git add frotz/nitfol" when "frotz" is a submodule should have - errored out, but it didn't. - * "git apply" took file modes from the patch text and updated - the mode bits of the target tree even when the patch was not - about mode changes. - * "git bisect view" on Cygwin did not launch gitk - * "git checkout $tree" did not trigger an error. - * "git commit" tried to remove COMMIT_EDITMSG from the work tree - by mistake. - * "git describe --all" complained when a commit is described - with a tag, which was nonsense. - * "git diff --no-index --" did not trigger no-index (aka "use - git-diff as a replacement of diff on untracked files") behaviour. - * "git format-patch -1 HEAD" on a root commit failed to produce - patch text. - * "git fsck branch" did not work as advertised; instead it - behaved the same way as "git fsck". - * "git log --pretty=format:%%s" did not handle a multi-line - subject the same way as built-in log listers (i.e. shortlog, - --pretty=oneline, etc.) - * "git daemon", and "git merge-file" are more careful when freopen - fails and barf, instead of going on and writing to unopened - filehandle. - * "git http-push" did not like some RFC 4918 compliant DAV server - responses. - * "git merge -s recursive" mistakenly overwritten an untracked - file in the work tree upon delete/modify conflict. - * "git merge -s recursive" didn't leave the index unmerged for - entries with rename/delete conflictd. - * "git merge -s recursive" clobbered untracked files in the work - tree. - * "git mv -k" with more than one errorneous paths misbehaved. - * "git read-tree -m -u" hence branch switching incorrectly lost - a subdirectory in rare cases. - * "git rebase -i" issued an unnecessary error message upon a user - error of marking the first commit to be "squash"ed. - * "git shortlog" did not format a commit message with multi-line - subject correctly. -* Thu Jan 08 2009 tiwai@suse.de -- updated to 1.6.1: - * handle properly the exit code when pager is used - * various git-gui updates including translations - * gitweb updates - * many other improvements / fixes. See release notes - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.1.txt -* Fri Dec 19 2008 lnussel@suse.de -- add apparmor profile for git-web -- don't use %%jobs for generating docu -- change gitexecdir to /usr/lib instead of %%_libdir -* Wed Dec 17 2008 tiwai@suse.de -- Fix VUL-0 Possible gitweb vulnerability: calling "git diff" - [bnc#459664] -* Thu Dec 11 2008 pbaudis@suse.cz -- Fix the git.xinetd daemon call [bnc#450508] -* Wed Nov 19 2008 tiwai@suse.de -- install git-shell and git-cvsserver as in the upstream - (bnc#446049) -* Tue Nov 04 2008 olh@suse.de -- use fdupes only if the distribution provides it -- use libopenssl-devel only if the distribution provides it -* Fri Oct 24 2008 tiwai@suse.de -- fix git.xinetd not to run the old git-daemon (bnc#438715) -* Mon Oct 06 2008 tiwai@suse.de -- fix git-daemon init script to start (bnc#432610) -* Fri Sep 26 2008 schwab@suse.de -- Fix manual pages. -* Thu Sep 25 2008 tiwai@suse.de -- updated to 1.6.0.2: - Mostly small bug fixes, see details in - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.2.txt -* Thu Sep 25 2008 tiwai@suse.de -- fix file selections of git-core package -- use symlinks for git sub-commands instead of hardlinks to make - build system happy -* Tue Sep 09 2008 tiwai@suse.de -- updated to 1.6.0: - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.txt -- updated to 1.6.0.1: - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.6.0.1.txt -- install git subcommands now to libdir/git - users have to set up properly if they want to keep the old style - (refer git --execpath) -* Tue Sep 09 2008 lnussel@suse.de -- split off gui and web subpackages -* Mon Aug 18 2008 schwab@suse.de -- Fix name of completions file. -* Tue Aug 12 2008 tiwai@suse.de -- updated to 1.5.6.5: - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.5.txt - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.4.txt - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.3.txt - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.2.txt - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.1.txt -* Wed Aug 06 2008 anosek@suse.cz -- fixed Add git xinetd.d file for ability to use yast2 (bnc#398361) - - created file git.xinetd to run git under xinetd daemon -* Wed Jun 25 2008 dmueller@suse.de -- update to 1.5.6: - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.6.txt -* Mon Jun 16 2008 lnussel@suse.de -- use separate package for git-daemon (bnc#382710) -- add user and install init script for git-daemon -* Tue May 20 2008 lnussel@suse.de -- install gitweb icons, style sheet and README (bnc#359882) -- build using V=1 so use of cflags can be verified by brp scripts -- fix build using --without docs -* Mon Apr 07 2008 dmueller@suse.de -- update to 1.5.4.5: - * http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.5.txt -* Tue Mar 18 2008 dmueller@suse.de -- update to 1.5.4.4: - * git svnimport was removed in favor of git svn - * git runstatus has been removed - * changes are available under - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.txt - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.1.txt - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.2.txt - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.3.txt - http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.4.4.txt -* Mon Jan 28 2008 mmarek@suse.de -- added libopenssl-devel to BuildRequires to fix build -* Wed Jan 09 2008 schwab@suse.de -- Update to version 1.5.3.8. - * Some documentation used "email.com" as an example domain. - * git-svn fix to handle funky branch and project names going over - http/https correctly. - * git-svn fix to tone down a needlessly alarming warning message. - * git-clone did not correctly report errors while fetching over http. - * git-send-email added redundant Message-Id: header to the outgoing - e-mail when the patch text already had one. - * a read-beyond-end-of-buffer bug in configuration file updater was fixed. - * git-grep used to show the same hit repeatedly for unmerged paths. - * After amending the patch title in "git-am -i", the command did not - report the patch it applied with the updated title. -* Tue Jan 08 2008 crrodriguez@suse.de -- git-cvsserver was unusable, it produced a perl failed-compilation error - due to missing dependency on perl-DBD-Sqlite. -- update to version 1.5.3.7 - * git-send-email added 8-bit contents to the payload without - marking it as 8-bit in a CTE header. - * "git-bundle create a.bndl HEAD" dereferenced the symref and - did not record the ref as 'HEAD'; this prevented a bundle - from being used as a normal source of git-clone. - * The code to reject nonsense command line of the form - "git-commit -a paths..." and "git-commit --interactive - paths..." were broken. - * Adding a signature that is not ASCII-only to an original - commit that is ASCII-only would make the result non-ASCII. - "git-format-patch -s" did not mark such a message correctly - with MIME encoding header. - * git-add sometimes did not mark the resulting index entry - stat-clean. This affected only cases when adding the - contents with the same length as the previously staged - contents, and the previous staging made the index entry - "racily clean". - * git-commit did not honor GIT_INDEX_FILE the user had in the - environment. - * When checking out a revision, git-checkout did not report where the - updated HEAD is if you happened to have a file called HEAD in the - work tree. - * "git-rev-list --objects" mishandled a tree that points at a - submodule. - * "git cvsimport" was not ready for packed refs that "git gc" can - produce and gave incorrect results. - * Many scripted Porcelains were confused when you happened to have a - file called "HEAD" in your work tree. -* Wed Nov 28 2007 dmueller@suse.de -- update to 1.5.3.6: - * various smaller bugfixes -- remove requires on release (#305826) -- install bash completion (#336848) -* Tue Oct 09 2007 dmueller@suse.de -- update to 1.5.3.4: - * submodule support - * many new features and bugfixes -* Mon Aug 06 2007 dmueller@suse.de -- update to 1.5.2.4: - * "git checkout" failed to switch back and forth between - branches, one of which has "frotz -> xyzzy" symlink and - file "xyzzy/filfre", while the other one has a file - "frotz/filfre". - * "git prune" used to segfault upon seeing a commit that is - referred to by a tree object (aka "subproject"). - * "git diff --name-status --no-index" mishandled an added file. - * "git apply --reverse --whitespace=warn" still complained - about whitespaces that a forward application would have - introduced. -* Thu Jul 05 2007 dmueller@suse.de -- Update to 1.5.2.3: - * fix many segfaults with the SVN gateway - * various bugfixes -* Fri May 18 2007 dmueller@suse.de -- Update to 1.5.1.4: - * GIT <-> SVN gateway - * New porcelain, much improved index handling - * git-config - * Bare repositories refuse commands that need a working tree - * packed ref support - * 3-way merges can be done without rcs - * python dependency dropped -* Sat Nov 18 2006 pbaudis@suse.cz -- Fix build failure from previous change (trivial omission) -* Fri Nov 17 2006 pbaudis@suse.cz -- Fix git-arch package containing git-archive and git-upload-archive - [#222074] -* Fri Nov 17 2006 pbaudis@suse.cz -- Upgrade to git-1.4.3.4 - only few bugfixes, most importantly - git-apply wouldn't apply creation/deletion patches -* Tue Nov 07 2006 ro@suse.de -- fix permissions for manpages -* Sat Oct 28 2006 meissner@suse.de -- use RPM_OPT_FLAGS also in %%install make -* Thu Oct 26 2006 pbaudis@suse.cz -- Upgrade to git-1.4.3.3 - bugfixes release -* Thu Oct 19 2006 pbaudis@suse.cz -- Update to git-1.4.3 - UI improvements, speedups, random new - features (e.g. git-daemon name-based virtual hosting support), - basic Git.pm -- Fixes build failures due to asciidoc incompatibilities -* Tue Jul 25 2006 pbaudis@suse.cz -- Update to git-1.4.1.1 - includes gitweb, many bugfixes, some - commands are converted from shell to C, aliasing support, - documentation improvements and so on. -- Junio's patch got applied upstream. -- Pre-create /srv/git for bare Git repositories hosting. -- Install gitweb to /srv/www/cgi-bin pre-configured to look - for packages at /srv/git. -* Mon May 15 2006 pbaudis@suse.cz -- Update to git-core-1.3.1 - git-cvsserver pserver interface, - .git/refs/remotes branches support, blame/annotate tools, - builtin diff, faster and better rename detection and number - of other stuff. -- Add Junio's patch for saner handling of symlink refs. This is - an important bugfix since without this, it is impossible to - bisect behind kernel linux-v2.6.15-g117a93d. -- Olaf Hering's cutnpaste patch got applied upstream. -* Mon Mar 13 2006 ro@suse.de -- change requires from "openssh-clients" to "openssh" - (former does not exist) -* Fri Mar 10 2006 pbaudis@suse.cz -- Add Olaf Hering's patch for easier cut'n'pasting. -* Wed Mar 08 2006 pbaudis@suse.cz -- Update to git-core 1.2.4. -- This is a security fix: there was a buffer overflow when checking - out a tree with an insanely long symlink. (No Bugzilla id.) -* Wed Jan 25 2006 mls@suse.de -- converted neededforbuild to BuildRequires -* Tue Jan 17 2006 pbaudis@suse.cz -- Fix the specfile build (no expat and asciidoc, xmlto problems) -* Tue Jan 17 2006 pbaudis@suse.cz -- Update to git-core 1.1.3. -- Modify the specfile so that it looks more like the stock one. -- Split bits to subpackages -* Sun Dec 04 2005 schwab@suse.de -- Fix embedded paths. -* Wed Oct 05 2005 schwab@suse.de -- Don't build documentation in parallel. -* Mon Sep 19 2005 schwab@suse.de -- Update to git-core 0.99.7. -- Install manpages. -* Fri Aug 05 2005 kasievers@suse.de -- New version 0.99.3git20050905 - rename git to git-core, to match the upstream package name -* Sun Jul 03 2005 kasievers@suse.de -- New version 0.7git20050703 -* Thu Jun 30 2005 kasievers@suse.de -- New version 20050630 -* Fri Jun 24 2005 kasievers@suse.de -- New version 20050624 -* Sun Jun 12 2005 kay.sievers@suse.de -- New version 20050612 -* Thu Jun 02 2005 kay.sievers@suse.de -- Split git/Cogito into separate packages -- Update git to version 20050602 -* Fri May 20 2005 schwab@suse.de -- Use RPM_OPT_FLAGS. -- Specfile cleanup. -* Fri May 20 2005 mmj@suse.de -- %%_libdir -> FHS libexec -* Fri May 20 2005 skh@suse.de -- initial package ++++++ git-1.6.3.2.tar.bz2 -> git-1.6.3.3.tar.bz2 ++++++ ++++ 7120 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/attr.c new/git-1.6.3.3/attr.c --- old/git-1.6.3.2/attr.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/attr.c 2009-06-22 08:24:25.000000000 +0200 @@ -35,8 +35,7 @@ static unsigned hash_name(const char *name, int namelen) { - unsigned val = 0; - unsigned char c; + unsigned val = 0, c; while (namelen--) { c = *name++; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/base85.c new/git-1.6.3.3/base85.c --- old/git-1.6.3.2/base85.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/base85.c 2009-06-22 08:24:25.000000000 +0200 @@ -91,7 +91,7 @@ unsigned acc = 0; int cnt; for (cnt = 24; cnt >= 0; cnt -= 8) { - int ch = *data++; + unsigned ch = *data++; acc |= ch << cnt; if (--bytes == 0) break; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-fetch-pack.c new/git-1.6.3.3/builtin-fetch-pack.c --- old/git-1.6.3.2/builtin-fetch-pack.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-fetch-pack.c 2009-06-22 08:24:25.000000000 +0200 @@ -483,7 +483,9 @@ { int *xd = data; - return recv_sideband("fetch-pack", xd[0], fd); + int ret = recv_sideband("fetch-pack", xd[0], fd); + close(fd); + return ret; } static int get_pack(int xd[2], char **pack_lockfile) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-for-each-ref.c new/git-1.6.3.3/builtin-for-each-ref.c --- old/git-1.6.3.2/builtin-for-each-ref.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-for-each-ref.c 2009-06-22 08:24:25.000000000 +0200 @@ -561,14 +561,6 @@ ref->value = xcalloc(sizeof(struct atom_value), used_atom_cnt); - buf = get_obj(ref->objectname, &obj, &size, &eaten); - if (!buf) - die("missing object %s for %s", - sha1_to_hex(ref->objectname), ref->refname); - if (!obj) - die("parse_object_buffer failed on %s for %s", - sha1_to_hex(ref->objectname), ref->refname); - /* Fill in specials first */ for (i = 0; i < used_atom_cnt; i++) { const char *name = used_atom[i]; @@ -621,6 +613,22 @@ } } + for (i = 0; i < used_atom_cnt; i++) { + struct atom_value *v = &ref->value[i]; + if (v->s == NULL) + goto need_obj; + } + return; + + need_obj: + buf = get_obj(ref->objectname, &obj, &size, &eaten); + if (!buf) + die("missing object %s for %s", + sha1_to_hex(ref->objectname), ref->refname); + if (!obj) + die("parse_object_buffer failed on %s for %s", + sha1_to_hex(ref->objectname), ref->refname); + grab_values(ref->value, 0, obj, buf, size); if (!eaten) free(buf); @@ -926,7 +934,7 @@ memset(&cbdata, 0, sizeof(cbdata)); cbdata.grab_pattern = argv; - for_each_ref(grab_single_ref, &cbdata); + for_each_rawref(grab_single_ref, &cbdata); refs = cbdata.grab_array; num_refs = cbdata.grab_cnt; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-merge.c new/git-1.6.3.3/builtin-merge.c --- old/git-1.6.3.2/builtin-merge.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-merge.c 2009-06-22 08:24:25.000000000 +0200 @@ -836,8 +836,11 @@ struct commit_list **remotes = &remoteheads; setup_work_tree(); + if (file_exists(git_path("MERGE_HEAD"))) + die("You have not concluded your merge. (MERGE_HEAD exists)"); if (read_cache_unmerged()) - die("You are in the middle of a conflicted merge."); + die("You are in the middle of a conflicted merge." + " (index unmerged)"); /* * Check if we are _not_ on a detached HEAD, i.e. if there is a diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-pack-objects.c new/git-1.6.3.3/builtin-pack-objects.c --- old/git-1.6.3.2/builtin-pack-objects.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-pack-objects.c 2009-06-22 08:24:25.000000000 +0200 @@ -653,8 +653,7 @@ static unsigned name_hash(const char *name) { - unsigned char c; - unsigned hash = 0; + unsigned c, hash = 0; if (!name) return 0; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-remote.c new/git-1.6.3.3/builtin-remote.c --- old/git-1.6.3.2/builtin-remote.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-remote.c 2009-06-22 08:24:25.000000000 +0200 @@ -1003,9 +1003,12 @@ get_remote_ref_states(*argv, &states, query_flag); - printf("* remote %s\n URL: %s\n", *argv, - states.remote->url_nr > 0 ? - states.remote->url[0] : "(no URL)"); + printf("* remote %s\n", *argv); + if (states.remote->url_nr) { + for (i=0; i < states.remote->url_nr; i++) + printf(" URL: %s\n", states.remote->url[i]); + } else + printf(" URL: %s\n", "(no URL)"); if (no_query) printf(" HEAD branch: (not queried)\n"); else if (!states.heads.nr) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-unpack-objects.c new/git-1.6.3.3/builtin-unpack-objects.c --- old/git-1.6.3.2/builtin-unpack-objects.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-unpack-objects.c 2009-06-22 08:24:25.000000000 +0200 @@ -422,8 +422,8 @@ static void unpack_one(unsigned nr) { unsigned shift; - unsigned char *pack, c; - unsigned long size; + unsigned char *pack; + unsigned long size, c; enum object_type type; obj_list[nr].offset = consumed_bytes; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/builtin-upload-archive.c new/git-1.6.3.3/builtin-upload-archive.c --- old/git-1.6.3.2/builtin-upload-archive.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/builtin-upload-archive.c 2009-06-22 08:24:25.000000000 +0200 @@ -80,16 +80,17 @@ die("sent error to the client: %s", buf); } -static void process_input(int child_fd, int band) +static ssize_t process_input(int child_fd, int band) { char buf[16384]; ssize_t sz = read(child_fd, buf, sizeof(buf)); if (sz < 0) { if (errno != EAGAIN && errno != EINTR) error_clnt("read error: %s\n", strerror(errno)); - return; + return sz; } send_sideband(1, band, buf, sz, LARGE_PACKET_MAX); + return sz; } int cmd_upload_archive(int argc, const char **argv, const char *prefix) @@ -131,6 +132,7 @@ while (1) { struct pollfd pfd[2]; + ssize_t processed[2] = { 0, 0 }; int status; pfd[0].fd = fd1[0]; @@ -147,12 +149,12 @@ } if (pfd[0].revents & POLLIN) /* Data stream ready */ - process_input(pfd[0].fd, 1); + processed[0] = process_input(pfd[0].fd, 1); if (pfd[1].revents & POLLIN) /* Status stream ready */ - process_input(pfd[1].fd, 2); + processed[1] = process_input(pfd[1].fd, 2); /* Always finish to read data when available */ - if ((pfd[0].revents | pfd[1].revents) & POLLIN) + if (processed[0] || processed[1]) continue; if (waitpid(writer, &status, 0) < 0) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/configure.ac new/git-1.6.3.3/configure.ac --- old/git-1.6.3.2/configure.ac 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/configure.ac 2009-06-22 08:24:25.000000000 +0200 @@ -385,6 +385,8 @@ # some Solaris installations). # Define NO_ICONV if neither libc nor libiconv support iconv. +if test -z "$NO_ICONV"; then + GIT_STASH_FLAGS($ICONVDIR) AC_DEFUN([ICONVTEST_SRC], [ @@ -431,6 +433,12 @@ AC_SUBST(NEEDS_LIBICONV) AC_SUBST(NO_ICONV) +if test -n "$NO_ICONV"; then + NEEDS_LIBICONV= +fi + +fi + # # Define NO_DEFLATE_BOUND if deflateBound is missing from zlib. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/connect.c new/git-1.6.3.3/connect.c --- old/git-1.6.3.2/connect.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/connect.c 2009-06-22 08:24:25.000000000 +0200 @@ -579,7 +579,10 @@ git_tcp_connect(fd, host, flags); /* * Separate original protocol components prog and path - * from extended components with a NUL byte. + * from extended host header with a NUL byte. + * + * Note: Do not add any other headers here! Doing so + * will cause older git-daemon servers to crash. */ packet_write(fd[1], "%s %s%chost=%s%c", diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/contrib/fast-import/import-tars.perl new/git-1.6.3.3/contrib/fast-import/import-tars.perl --- old/git-1.6.3.2/contrib/fast-import/import-tars.perl 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/contrib/fast-import/import-tars.perl 2009-06-22 08:24:25.000000000 +0200 @@ -82,10 +82,16 @@ $mtime = oct $mtime; next if $typeflag == 5; # directory - print FI "blob\n", "mark :$next_mark\n", "data $size\n"; - while ($size > 0 && read(I, $_, 512) == 512) { - print FI substr($_, 0, $size); - $size -= 512; + print FI "blob\n", "mark :$next_mark\n"; + if ($typeflag == 2) { # symbolic link + print FI "data ", length($linkname), "\n", $linkname; + $mode = 0120000; + } else { + print FI "data $size\n"; + while ($size > 0 && read(I, $_, 512) == 512) { + print FI substr($_, 0, $size); + $size -= 512; + } } print FI "\n"; @@ -118,7 +124,8 @@ { my ($mark, $mode) = @{$files{$path}}; $path =~ s,^([^/]+)/,, if $have_top_dir; - printf FI "M %o :%i %s\n", $mode & 0111 ? 0755 : 0644, $mark, $path; + $mode = $mode & 0111 ? 0755 : 0644 unless $mode == 0120000; + printf FI "M %o :%i %s\n", $mode, $mark, $path; } print FI "\n"; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/daemon.c new/git-1.6.3.3/daemon.c --- old/git-1.6.3.2/daemon.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/daemon.c 2009-06-22 08:24:25.000000000 +0200 @@ -406,15 +406,15 @@ } /* - * Separate the "extra args" information as supplied by the client connection. + * Read the host as supplied by the client connection. */ -static void parse_extra_args(char *extra_args, int buflen) +static void parse_host_arg(char *extra_args, int buflen) { char *val; int vallen; char *end = extra_args + buflen; - while (extra_args < end && *extra_args) { + if (extra_args < end && *extra_args) { saw_extended_args = 1; if (strncasecmp("host=", extra_args, 5) == 0) { val = extra_args + 5; @@ -436,6 +436,8 @@ /* On to the next one */ extra_args = val + vallen; } + if (extra_args < end && *extra_args) + die("Invalid request"); } /* @@ -545,7 +547,7 @@ hostname = canon_hostname = ip_address = tcp_port = NULL; if (len != pktlen) - parse_extra_args(line + len + 1, pktlen - len - 1); + parse_host_arg(line + len + 1, pktlen - len - 1); for (i = 0; i < ARRAY_SIZE(daemon_service); i++) { struct daemon_service *s = &(daemon_service[i]); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/delta.h new/git-1.6.3.3/delta.h --- old/git-1.6.3.2/delta.h 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/delta.h 2009-06-22 08:24:25.000000000 +0200 @@ -90,12 +90,11 @@ const unsigned char *top) { const unsigned char *data = *datap; - unsigned char cmd; - unsigned long size = 0; + unsigned long cmd, size = 0; int i = 0; do { cmd = *data++; - size |= (cmd & ~0x80) << i; + size |= (cmd & 0x7f) << i; i += 7; } while (cmd & 0x80 && data < top); *datap = data; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/diff.c new/git-1.6.3.3/diff.c --- old/git-1.6.3.2/diff.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/diff.c 2009-06-22 08:24:25.000000000 +0200 @@ -3590,6 +3590,7 @@ if (start_command(&child) != 0 || strbuf_read(&buf, child.out, 0) < 0 || finish_command(&child) != 0) { + strbuf_release(&buf); remove_tempfile(); error("error running textconv command '%s'", pgm); return NULL; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/git-rerere.txt new/git-1.6.3.3/Documentation/git-rerere.txt --- old/git-1.6.3.2/Documentation/git-rerere.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/git-rerere.txt 2009-06-22 08:24:25.000000000 +0200 @@ -12,15 +12,15 @@ DESCRIPTION ----------- -In a workflow that employs relatively long lived topic branches, -the developer sometimes needs to resolve the same conflict over +In a workflow employing relatively long lived topic branches, +the developer sometimes needs to resolve the same conflicts over and over again until the topic branches are done (either merged to the "release" branch, or sent out and accepted upstream). -This command helps this process by recording conflicted -automerge results and corresponding hand-resolve results on the -initial manual merge, and later by noticing the same automerge -results and applying the previously recorded hand resolution. +This command assists the developer in this process by recording +conflicted automerge results and corresponding hand resolve results +on the initial manual merge, and applying previously recorded +hand resolutions to their corresponding automerge results. [NOTE] You need to set the configuration variable rerere.enabled to @@ -54,18 +54,18 @@ 'gc':: -This command is used to prune records of conflicted merge that -occurred long time ago. By default, conflicts older than 15 -days that you have not recorded their resolution, and conflicts -older than 60 days, are pruned. These are controlled with +This prunes records of conflicted merges that +occurred a long time ago. By default, unresolved conflicts older +than 15 days and resolved conflicts older than 60 +days are pruned. These defaults are controlled via the `gc.rerereunresolved` and `gc.rerereresolved` configuration -variables. +variables respectively. DISCUSSION ---------- -When your topic branch modifies overlapping area that your +When your topic branch modifies an overlapping area that your master branch (or upstream) touched since your topic branch forked from it, you may want to test it with the latest master, even before your topic branch is ready to be pushed upstream: @@ -140,9 +140,9 @@ This would leave only one merge commit when your topic branch is finally ready and merged into the master branch. This merge would require you to resolve the conflict, introduced by the -commits marked with `*`. However, often this conflict is the +commits marked with `*`. However, this conflict is often the same conflict you resolved when you created the test merge you -blew away. 'git-rerere' command helps you to resolve this final +blew away. 'git-rerere' helps you resolve this final conflicted merge using the information from your earlier hand resolve. @@ -150,33 +150,32 @@ automerge records the conflicted working tree files, with the usual conflict markers `<<<<<<<`, `=======`, and `>>>>>>>` in them. Later, after you are done resolving the conflicts, -running 'git-rerere' again records the resolved state of these +running 'git-rerere' again will record the resolved state of these files. Suppose you did this when you created the test merge of master into the topic branch. -Next time, running 'git-rerere' after seeing a conflicted -automerge, if the conflict is the same as the earlier one -recorded, it is noticed and a three-way merge between the +Next time, after seeing the same conflicted automerge, +running 'git-rerere' will perform a three-way merge between the earlier conflicted automerge, the earlier manual resolution, and -the current conflicted automerge is performed by the command. +the current conflicted automerge. If this three-way merge resolves cleanly, the result is written -out to your working tree file, so you would not have to manually +out to your working tree file, so you do not have to manually resolve it. Note that 'git-rerere' leaves the index file alone, so you still need to do the final sanity checks with `git diff` (or `git diff -c`) and 'git-add' when you are satisfied. As a convenience measure, 'git-merge' automatically invokes -'git-rerere' when it exits with a failed automerge, which -records it if it is a new conflict, or reuses the earlier hand +'git-rerere' upon exiting with a failed automerge and 'git-rerere' +records the hand resolve when it is a new conflict, or reuses the earlier hand resolve when it is not. 'git-commit' also invokes 'git-rerere' -when recording a merge result. What this means is that you do -not have to do anything special yourself (Note: you still have -to set the config variable rerere.enabled to enable this command). +when committing a merge result. What this means is that you do +not have to do anything special yourself (besides enabling +the rerere.enabled config variable). -In our example, when you did the test merge, the manual +In our example, when you do the test merge, the manual resolution is recorded, and it will be reused when you do the -actual merge later with updated master and topic branch, as long -as the earlier resolution is still applicable. +actual merge later with the updated master and topic branch, as long +as the recorded resolution is still applicable. The information 'git-rerere' records is also used when running 'git-rebase'. After blowing away the test merge and continuing @@ -194,11 +193,11 @@ o---o---o---*---o---o---o---o master ------------ -you could run `git rebase master topic`, to keep yourself -up-to-date even before your topic is ready to be sent upstream. -This would result in falling back to three-way merge, and it -would conflict the same way the test merge you resolved earlier. -'git-rerere' is run by 'git-rebase' to help you resolve this +you could run `git rebase master topic`, to bring yourself +up-to-date before your topic is ready to be sent upstream. +This would result in falling back to a three-way merge, and it +would conflict the same way as the test merge you resolved earlier. +'git-rerere' will be run by 'git-rebase' to help you resolve this conflict. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/git-send-email.txt new/git-1.6.3.3/Documentation/git-send-email.txt --- old/git-1.6.3.2/Documentation/git-send-email.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/git-send-email.txt 2009-06-22 08:24:25.000000000 +0200 @@ -14,6 +14,10 @@ DESCRIPTION ----------- Takes the patches given on the command line and emails them out. +Patches can be specified as files, directories (which will send all +files in the directory), or directly as a revision list. In the +last case, any format accepted by linkgit:git-format-patch[1] can +be passed to git send-email. The header of the email is configurable by command line options. If not specified on the command line, the user will be prompted with a ReadLine diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/git-show-ref.txt new/git-1.6.3.3/Documentation/git-show-ref.txt --- old/git-1.6.3.2/Documentation/git-show-ref.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/git-show-ref.txt 2009-06-22 08:24:25.000000000 +0200 @@ -24,7 +24,7 @@ refs from stdin that don't exist in the local repository. Use of this utility is encouraged in favor of directly accessing files under -in the `.git` directory. +the `.git` directory. OPTIONS ------- @@ -50,7 +50,7 @@ -s:: --hash:: - Only show the SHA1 hash, not the reference name. When also using + Only show the SHA1 hash, not the reference name. When combined with --dereference the dereferenced tag will still be shown after the SHA1. --verify:: diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/git-svn.txt new/git-1.6.3.3/Documentation/git-svn.txt --- old/git-1.6.3.2/Documentation/git-svn.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/git-svn.txt 2009-06-22 08:24:25.000000000 +0200 @@ -615,7 +615,7 @@ If you use `git svn set-tree A..B` to commit several diffs and you do not have the latest remotes/git-svn merged into my-branch, you should use `git svn rebase` to update your work branch instead of `git pull` or -`git merge`. `pull`/`merge' can cause non-linear history to be flattened +`git merge`. `pull`/`merge` can cause non-linear history to be flattened when committing into SVN, which can lead to merge commits reversing previous commits in SVN. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/gittutorial.txt new/git-1.6.3.3/Documentation/gittutorial.txt --- old/git-1.6.3.2/Documentation/gittutorial.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/gittutorial.txt 2009-06-22 08:24:25.000000000 +0200 @@ -650,6 +650,9 @@ smart enough to perform a close-to-optimal search even in the case of complex non-linear history with lots of merged branches. + * linkgit:gitworkflows[7]: Gives an overview of recommended + workflows. + * link:everyday.html[Everyday GIT with 20 Commands Or So] * linkgit:gitcvs-migration[7]: Git for CVS users. @@ -661,6 +664,7 @@ linkgit:gitcore-tutorial[7], linkgit:gitglossary[7], linkgit:git-help[1], +linkgit:gitworkflows[7], link:everyday.html[Everyday git], link:user-manual.html[The Git User's Manual] diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/git.txt new/git-1.6.3.3/Documentation/git.txt --- old/git-1.6.3.2/Documentation/git.txt 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/Documentation/git.txt 2009-06-22 08:24:25.000000000 +0200 @@ -227,6 +227,8 @@ user-manual] and linkgit:gitcore-tutorial[7] both provide introductions to the underlying git architecture. +See linkgit:gitworkflows[7] for an overview of recommended workflows. + See also the link:howto-index.html[howto] documents for some useful examples. @@ -644,7 +646,8 @@ linkgit:gittutorial[7], linkgit:gittutorial-2[7], link:everyday.html[Everyday Git], linkgit:gitcvs-migration[7], linkgit:gitglossary[7], linkgit:gitcore-tutorial[7], -linkgit:gitcli[7], link:user-manual.html[The Git User's Manual] +linkgit:gitcli[7], link:user-manual.html[The Git User's Manual], +linkgit:gitworkflows[7] GIT --- diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/Documentation/RelNotes-1.6.3.3.txt new/git-1.6.3.3/Documentation/RelNotes-1.6.3.3.txt --- old/git-1.6.3.2/Documentation/RelNotes-1.6.3.3.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/git-1.6.3.3/Documentation/RelNotes-1.6.3.3.txt 2009-06-22 08:24:25.000000000 +0200 @@ -0,0 +1,38 @@ +GIT v1.6.3.3 Release Notes +========================== + +Fixes since v1.6.3.2 +-------------------- + + * "git archive" running on Cygwin can get stuck in an infinite loop. + + * "git daemon" did not correctly parse the initial line that carries + virtual host request information. + + * "git diff --textconv" leaked memory badly when the textconv filter + errored out. + + * The built-in regular expressions to pick function names to put on + hunk header lines for java and objc were very inefficiently written. + + * in certain error situations git-fetch (and git-clone) on Windows didn't + detect connection abort and ended up waiting indefinitely. + + * import-tars script (in contrib) did not import symbolic links correctly. + + * http.c used CURLOPT_SSLKEY even on libcURL version 7.9.2, even though + it was only available starting 7.9.3. + + * low-level filelevel merge driver used return value from strdup() + without checking if we ran out of memory. + + * "git rebase -i" left stray closing parenthesis in its reflog message. + + * "git remote show" did not show all the URLs associated with the named + remote, even though "git remote -v" did. Made them consistent by + making the former show all URLs. + + * "whitespace" attribute that is set was meant to detect all errors known + to git, but it told git to ignore trailing carriage-returns. + +Includes other documentation fixes. diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/.gitattributes new/git-1.6.3.3/.gitattributes --- old/git-1.6.3.2/.gitattributes 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/.gitattributes 2009-06-22 08:24:25.000000000 +0200 @@ -1,2 +1,2 @@ * whitespace=!indent,trail,space -*.[ch] whitespace +*.[ch] whitespace=indent,trail,space diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/git-pull.sh new/git-1.6.3.3/git-pull.sh --- old/git-1.6.3.2/git-pull.sh 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/git-pull.sh 2009-06-22 08:24:25.000000000 +0200 @@ -176,13 +176,11 @@ ?*' '?*) if test -z "$orig_head" then - echo >&2 "Cannot merge multiple branches into empty head" - exit 1 + die "Cannot merge multiple branches into empty head" fi if test true = "$rebase" then - echo >&2 "Cannot rebase onto multiple branches" - exit 1 + die "Cannot rebase onto multiple branches" fi ;; esac diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/git-rebase--interactive.sh new/git-1.6.3.3/git-rebase--interactive.sh --- old/git-1.6.3.2/git-rebase--interactive.sh 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/git-rebase--interactive.sh 2009-06-22 08:24:25.000000000 +0200 @@ -420,7 +420,7 @@ NEWHEAD=$(git rev-parse HEAD) && case $HEADNAME in refs/*) - message="$GIT_REFLOG_ACTION: $HEADNAME onto $SHORTONTO)" && + message="$GIT_REFLOG_ACTION: $HEADNAME onto $SHORTONTO" && git update-ref -m "$message" $HEADNAME $NEWHEAD $OLDHEAD && git symbolic-ref HEAD $HEADNAME ;; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/git-rebase.sh new/git-1.6.3.3/git-rebase.sh --- old/git-1.6.3.2/git-rebase.sh 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/git-rebase.sh 2009-06-22 08:24:25.000000000 +0200 @@ -168,10 +168,8 @@ if test -z "$OK_TO_SKIP_PRE_REBASE" && test -x "$GIT_DIR/hooks/pre-rebase" then - "$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || { - echo >&2 "The pre-rebase hook refused to rebase." - exit 1 - } + "$GIT_DIR/hooks/pre-rebase" ${1+"$@"} || + die "The pre-rebase hook refused to rebase." fi } @@ -359,8 +357,7 @@ # The tree must be really really clean. if ! git update-index --ignore-submodules --refresh; then - echo >&2 "cannot rebase: you have unstaged changes" - exit 1 + die "cannot rebase: you have unstaged changes" fi diff=$(git diff-index --cached --name-status -r --ignore-submodules HEAD --) case "$diff" in diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/git.spec new/git-1.6.3.3/git.spec --- old/git-1.6.3.2/git.spec 2009-06-04 08:26:41.000000000 +0200 +++ new/git-1.6.3.3/git.spec 2009-06-22 08:24:25.000000000 +0200 @@ -1,7 +1,7 @@ # Pass --without docs to rpmbuild if you don't want the documentation Name: git -Version: 1.6.3.2 +Version: 1.6.3.3 Release: 1%{?dist} Summary: Core git tools License: GPL diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/GIT-VERSION-GEN new/git-1.6.3.3/GIT-VERSION-GEN --- old/git-1.6.3.2/GIT-VERSION-GEN 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/GIT-VERSION-GEN 2009-06-22 08:24:25.000000000 +0200 @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.6.3.2 +DEF_VER=v1.6.3.3 LF=' ' diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/http.c new/git-1.6.3.3/http.c --- old/git-1.6.3.2/http.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/http.c 2009-06-22 08:24:25.000000000 +0200 @@ -14,7 +14,7 @@ static int curl_ssl_verify = -1; static const char *ssl_cert; -#if LIBCURL_VERSION_NUM >= 0x070902 +#if LIBCURL_VERSION_NUM >= 0x070903 static const char *ssl_key; #endif #if LIBCURL_VERSION_NUM >= 0x070908 @@ -119,7 +119,7 @@ } if (!strcmp("http.sslcert", var)) return git_config_string(&ssl_cert, var, value); -#if LIBCURL_VERSION_NUM >= 0x070902 +#if LIBCURL_VERSION_NUM >= 0x070903 if (!strcmp("http.sslkey", var)) return git_config_string(&ssl_key, var, value); #endif @@ -189,7 +189,7 @@ if (ssl_cert != NULL) curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert); -#if LIBCURL_VERSION_NUM >= 0x070902 +#if LIBCURL_VERSION_NUM >= 0x070903 if (ssl_key != NULL) curl_easy_setopt(result, CURLOPT_SSLKEY, ssl_key); #endif @@ -303,7 +303,7 @@ curl_ssl_verify = 0; set_from_env(&ssl_cert, "GIT_SSL_CERT"); -#if LIBCURL_VERSION_NUM >= 0x070902 +#if LIBCURL_VERSION_NUM >= 0x070903 set_from_env(&ssl_key, "GIT_SSL_KEY"); #endif #if LIBCURL_VERSION_NUM >= 0x070908 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/http-push.c new/git-1.6.3.3/http-push.c --- old/git-1.6.3.2/http-push.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/http-push.c 2009-06-22 08:24:25.000000000 +0200 @@ -724,9 +724,11 @@ struct stat st; struct packed_git *target; struct packed_git **lst; + struct active_request_slot *slot; request->curl_result = request->slot->curl_result; request->http_code = request->slot->http_code; + slot = request->slot; request->slot = NULL; /* Keep locks active */ @@ -823,6 +825,7 @@ fclose(request->local_stream); request->local_stream = NULL; + slot->local = NULL; if (!move_temp_to_file(request->tmpfile, request->filename)) { target = (struct packed_git *)request->userData; @@ -1024,17 +1027,20 @@ if (results.curl_result != CURLE_OK) { free(url); fclose(indexfile); + slot->local = NULL; return error("Unable to get pack index %s\n%s", url, curl_errorstr); } } else { free(url); fclose(indexfile); + slot->local = NULL; return error("Unable to start request"); } free(url); fclose(indexfile); + slot->local = NULL; return move_temp_to_file(tmpfile, filename); } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/http-walker.c new/git-1.6.3.3/http-walker.c --- old/git-1.6.3.2/http-walker.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/http-walker.c 2009-06-22 08:24:25.000000000 +0200 @@ -418,15 +418,18 @@ run_active_slot(slot); if (results.curl_result != CURLE_OK) { fclose(indexfile); + slot->local = NULL; return error("Unable to get pack index %s\n%s", url, curl_errorstr); } } else { fclose(indexfile); + slot->local = NULL; return error("Unable to start request"); } fclose(indexfile); + slot->local = NULL; return move_temp_to_file(tmpfile, filename); } @@ -776,16 +779,19 @@ run_active_slot(slot); if (results.curl_result != CURLE_OK) { fclose(packfile); + slot->local = NULL; return error("Unable to get pack file %s\n%s", url, curl_errorstr); } } else { fclose(packfile); + slot->local = NULL; return error("Unable to start request"); } target->pack_size = ftell(packfile); fclose(packfile); + slot->local = NULL; ret = move_temp_to_file(tmpfile, filename); if (ret) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/index-pack.c new/git-1.6.3.3/index-pack.c --- old/git-1.6.3.2/index-pack.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/index-pack.c 2009-06-22 08:24:25.000000000 +0200 @@ -293,8 +293,8 @@ static void *unpack_raw_entry(struct object_entry *obj, union delta_base *delta_base) { - unsigned char *p, c; - unsigned long size; + unsigned char *p; + unsigned long size, c; off_t base_offset; unsigned shift; void *data; @@ -312,7 +312,7 @@ p = fill(1); c = *p; use(1); - size += (c & 0x7fUL) << shift; + size += (c & 0x7f) << shift; shift += 7; } obj->size = size; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/ll-merge.c new/git-1.6.3.3/ll-merge.c --- old/git-1.6.3.2/ll-merge.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/ll-merge.c 2009-06-22 08:24:25.000000000 +0200 @@ -238,7 +238,7 @@ if (!strcmp(var, "merge.default")) { if (value) - default_ll_merge = strdup(value); + default_ll_merge = xstrdup(value); return 0; } @@ -272,7 +272,7 @@ if (!strcmp("name", ep)) { if (!value) return error("%s: lacks value", var); - fn->description = strdup(value); + fn->description = xstrdup(value); return 0; } @@ -295,14 +295,14 @@ * file named by %A, and signal that it has done with zero exit * status. */ - fn->cmdline = strdup(value); + fn->cmdline = xstrdup(value); return 0; } if (!strcmp("recursive", ep)) { if (!value) return error("%s: lacks value", var); - fn->recursive = strdup(value); + fn->recursive = xstrdup(value); return 0; } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/patch-delta.c new/git-1.6.3.3/patch-delta.c --- old/git-1.6.3.2/patch-delta.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/patch-delta.c 2009-06-22 08:24:25.000000000 +0200 @@ -44,7 +44,7 @@ if (cmd & 0x01) cp_off = *data++; if (cmd & 0x02) cp_off |= (*data++ << 8); if (cmd & 0x04) cp_off |= (*data++ << 16); - if (cmd & 0x08) cp_off |= (*data++ << 24); + if (cmd & 0x08) cp_off |= ((unsigned) *data++ << 24); if (cmd & 0x10) cp_size = *data++; if (cmd & 0x20) cp_size |= (*data++ << 8); if (cmd & 0x40) cp_size |= (*data++ << 16); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/RelNotes new/git-1.6.3.3/RelNotes --- old/git-1.6.3.2/RelNotes 2009-07-04 10:10:31.000000000 +0200 +++ new/git-1.6.3.3/RelNotes 2009-07-04 10:10:31.000000000 +0200 @@ -1 +1 @@ -symbolic link to Documentation/RelNotes-1.6.3.2.txt +symbolic link to Documentation/RelNotes-1.6.3.3.txt diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/sha1_file.c new/git-1.6.3.3/sha1_file.c --- old/git-1.6.3.2/sha1_file.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/sha1_file.c 2009-06-22 08:24:25.000000000 +0200 @@ -1162,8 +1162,7 @@ unsigned long len, enum object_type *type, unsigned long *sizep) { unsigned shift; - unsigned char c; - unsigned long size; + unsigned long size, c; unsigned long used = 0; c = buf[used++]; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/t/t3030-merge-recursive.sh new/git-1.6.3.3/t/t3030-merge-recursive.sh --- old/git-1.6.3.2/t/t3030-merge-recursive.sh 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/t/t3030-merge-recursive.sh 2009-06-22 08:24:25.000000000 +0200 @@ -276,6 +276,9 @@ test_must_fail git merge "$c5" && test_must_fail git merge "$c5" 2> out && + grep "You have not concluded your merge" out && + rm -f .git/MERGE_HEAD && + test_must_fail git merge "$c5" 2> out && grep "You are in the middle of a conflicted merge" out ' diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/t/t3505-cherry-pick-empty.sh new/git-1.6.3.3/t/t3505-cherry-pick-empty.sh --- old/git-1.6.3.2/t/t3505-cherry-pick-empty.sh 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/t/t3505-cherry-pick-empty.sh 2009-06-22 08:24:25.000000000 +0200 @@ -17,11 +17,11 @@ ' -test_expect_code 1 'cherry-pick an empty commit' ' - - git checkout master && - git cherry-pick empty-branch - +test_expect_success 'cherry-pick an empty commit' ' + git checkout master && { + git cherry-pick empty-branch + test "$?" = 1 + } ' test_expect_success 'index lockfile was removed' ' diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/userdiff.c new/git-1.6.3.3/userdiff.c --- old/git-1.6.3.2/userdiff.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/userdiff.c 2009-06-22 08:24:25.000000000 +0200 @@ -13,7 +13,8 @@ "[^<>= \t]+|[^[:space:]]|[\x80-\xff]+"), PATTERNS("java", "!^[ \t]*(catch|do|for|if|instanceof|new|return|switch|throw|while)\n" - "^[ \t]*(([ \t]*[A-Za-z_][A-Za-z_0-9]*){2,}[ \t]*\\([^;]*)$", + "^[ \t]*(([A-Za-z_][A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$", + /* -- */ "[a-zA-Z_][a-zA-Z0-9_]*" "|[-+0-9.e]+[fFlL]?|0[xXbB]?[0-9a-fA-F]+[lL]?" "|[-+*/<>%&^|=!]=" @@ -25,7 +26,7 @@ /* Objective-C methods */ "^[ \t]*([-+][ \t]*\\([ \t]*[A-Za-z_][A-Za-z_0-9* \t]*\\)[ \t]*[A-Za-z_].*)$\n" /* C functions */ - "^[ \t]*(([ \t]*[A-Za-z_][A-Za-z_0-9]*){2,}[ \t]*\\([^;]*)$\n" + "^[ \t]*(([A-Za-z_][A-Za-z_0-9]*[ \t]+)+[A-Za-z_][A-Za-z_0-9]*[ \t]*\\([^;]*)$\n" /* Objective-C class/protocol definitions */ "^(@(implementation|interface|protocol)[ \t].*)$", /* -- */ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/version new/git-1.6.3.3/version --- old/git-1.6.3.2/version 2009-06-04 08:26:41.000000000 +0200 +++ new/git-1.6.3.3/version 2009-06-22 08:24:25.000000000 +0200 @@ -1 +1 @@ -1.6.3.2 +1.6.3.3 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/git-1.6.3.2/ws.c new/git-1.6.3.3/ws.c --- old/git-1.6.3.2/ws.c 2009-06-04 08:26:40.000000000 +0200 +++ new/git-1.6.3.3/ws.c 2009-06-22 08:24:25.000000000 +0200 @@ -10,11 +10,12 @@ static struct whitespace_rule { const char *rule_name; unsigned rule_bits; + unsigned loosens_error; } whitespace_rule_names[] = { - { "trailing-space", WS_TRAILING_SPACE }, - { "space-before-tab", WS_SPACE_BEFORE_TAB }, - { "indent-with-non-tab", WS_INDENT_WITH_NON_TAB }, - { "cr-at-eol", WS_CR_AT_EOL }, + { "trailing-space", WS_TRAILING_SPACE, 0 }, + { "space-before-tab", WS_SPACE_BEFORE_TAB, 0 }, + { "indent-with-non-tab", WS_INDENT_WITH_NON_TAB, 0 }, + { "cr-at-eol", WS_CR_AT_EOL, 1 }, }; unsigned parse_whitespace_rule(const char *string) @@ -79,7 +80,8 @@ unsigned all_rule = 0; int i; for (i = 0; i < ARRAY_SIZE(whitespace_rule_names); i++) - all_rule |= whitespace_rule_names[i].rule_bits; + if (!whitespace_rule_names[i].loosens_error) + all_rule |= whitespace_rule_names[i].rule_bits; return all_rule; } else if (ATTR_FALSE(value)) { /* false (-whitespace) */ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org