git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
Search results ordered by [date|relevance]  view[summary|nested|Atom feed]
thread overview below | download mbox.gz: |
* What's cooking in git.git (Jun 2009, #03; Sat, 27)
@ 2009-06-28  7:09  2% Junio C Hamano
  0 siblings, 0 replies; 9+ results
From: Junio C Hamano @ 2009-06-28  7:09 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed with '-' are
only in 'pu' while commits prefixed with '+' are in 'next'.  The ones
marked with '.' do not appear in any of the branches, but I am still
holding onto them.

The topics list the commits in reverse chronological order.  The topics
meant to be merged to the maintenance series have "maint-" in their names.

----------------------------------------------------------------
[New Topics]

* gb/gitweb-avatar (Tue Jun 23 00:49:59 2009 +0200) 2 commits
 - gitweb: gravatar support
 - gitweb: refactor author name insertion

This was from way earlier round and will be replaced.

* ld/push-porcelain-out (Mon Jun 22 21:10:01 2009 -0400) 1 commit
 - add --porcelain option to git-push

* cf/maint-remote-uploadpack-useconfig-fix (Thu Jun 25 17:21:35 2009 -0400) 1 commit
 + git-remote: fix missing .uploadpack usage for show command

* en/fast-export (Thu Jun 25 22:48:33 2009 -0600) 7 commits
 - fast-export: Document the fact that git-rev-list arguments are
   accepted
 - Add new fast-export testcases
 - fast-export: Add a --tag-of-filtered-object option for newly
   dangling tags
 - fast-export: Do parent rewriting to avoid dropping relevant
   commits
 - fast-export: Make sure we show actual ref names instead of
   "(null)"
 - fast-export: Omit tags that tag trees
 - fast-export: Set revs.topo_order before calling setup_revisions

* sb/read-tree (Thu Jun 25 22:14:10 2009 -0700) 2 commits
 - read-tree: migrate to parse-options
 - read-tree: convert unhelpful usage()'s to helpful die()'s

* sb/show-ref-parse-options (Sat Jun 20 21:40:46 2009 -0700) 1 commit
 + show-ref: migrate to parse-options

----------------------------------------------------------------
[Graduated to "master"]

* sb/maint-1.6.0-add-config-fix (Thu Jun 18 02:17:54 2009 -0700) 2 commits
 + add: allow configurations to be overriden by command line
 + use xstrdup, not strdup in ll-merge.c

* pb/maint-1.6.2-userdiff-fix (Wed Jun 17 12:11:10 2009 +0200) 2 commits
 + upload-archive: fix infinite loop on Cygwin
 + avoid exponential regex match for java and objc function names

* lt/maint-unsigned-left-shift (Wed Jun 17 17:22:27 2009 -0700) 1 commit
 + Fix big left-shifts of unsigned char

* pb/send-email-cccmd-fix (Thu Jun 18 14:31:32 2009 +0200) 1 commit
 + Test cccmd in t9001-send-email.sh and fix some bugs

* ph/submodule-rebase (Wed Jun 3 00:59:12 2009 +0200) 1 commit
 + git-submodule: add support for --merge.

* jc/cache-tree (Fri May 22 23:14:25 2009 -0700) 5 commits
 + Avoid "diff-index --cached" optimization under --find-copies-
   harder
 + Optimize "diff-index --cached" using cache-tree
 + t4007: modernize the style
 + cache-tree.c::cache_tree_find(): simplify internal API
 + write-tree --ignore-cache-tree

* mn/maint-iconv-autoconf (Mon Jun 8 20:46:38 2009 -0700) 1 commit
 + fix handling of iconv configuration options

* sb/pull-rebase (Fri Jun 12 00:39:21 2009 +0200) 3 commits
 + parse-remote: remove unused functions
 + parse-remote: support default reflist in get_remote_merge_branch
 + parse-remote: function to get the tracking branch to be merge

* mg/pushurl (Sun Jun 14 21:46:10 2009 +0200) 6 commits
 + avoid NULL dereference on failed malloc
 + builtin-remote: Make "remote -v" display push urls
 + builtin-remote: Show push urls as well
 + technical/api-remote: Describe new struct remote member pushurl
 + t5516: Check pushurl config setting
 + Allow push and fetch urls to be different

----------------------------------------------------------------
[Stalled and may need help and prodding to go forward]

* jh/notes (Sat May 16 13:44:17 2009 +0200) 5 commits
 - Teach "-m <msg>" and "-F <file>" to "git notes edit"
 - Add an expensive test for git-notes
 - Speed up git notes lookup
 - Add a script to edit/inspect notes
 - Introduce commit notes

Dscho asked about the performance implications of this; I do not think I
saw any progress on that yet...

* lt/read-directory (Fri May 15 12:01:29 2009 -0700) 3 commits
 - Add initial support for pathname conversion to UTF-8
 - read_directory(): infrastructure for pathname character set
   conversion
 - Add 'fill_directory()' helper function for directory traversal

Before adding the real "conversion", this needs a few real fixups, I
think.  For example there is one hardcoded array that is used without
bounds check.

* ar/maint-1.6.2-merge-recursive-d-f (Mon May 11 21:25:36 2009 +0200) 2 commits
 - Fix for a merge where a branch has an F->D transition
 - Add a reminder test case for a merge with F/D transition

Although the reported breakage is covered with the patch, Alex feels the
solution unsatisfactory. Cleaning up D/F conflict handling in merge-recursive
may be long overdue but seems to be a hard problem.

* ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit
 - blame.c: start libifying the blame infrastructure

A few minor point remains in this initial one.

* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit
 - Allow --date=local --date=other-format to work as expected

The one I posted had a few corner-case bugs that was caught with the test
suite; this one has them fixed.  People did not like the UI so it is kept
out of 'next'

* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
 - git-merge-file: allow converting the results for the work tree

This is a feature waiting for a user.

We did not give scripted Porcelains a way to say "this temporary file I am
using for merging is for this path, so use the core.autocrlf and attributes
rules for that final path".  Instead, merge-file simply wrote out the
data in the canonical repository representation.

rerere has the same issue, but it is a lot worse.  It reads the three
files (preimage, postimage and thisimage) from the work tree in the work
tree representation, merges them without converting them to the canonical
representation first but inserts the conflict markers with the canonical
representation and writes the resulting mess out.  It needs to be fixed to
read with convert_to_git(), merge them while they are still in the
canonical representation and possibly add conflict markers, and then write
the results out after convert_to_working_tree().  It also needs to write
in binary mode as well.

* db/foreign-scm (Tue Mar 24 23:04:12 2009 -0400) 3 commits
 - Add option for using a foreign VCS
 - Document details of transport function APIs
 - Allow late reporting of fetched hashes

* hv/cvsps-tests (Sun Apr 5 01:40:50 2009 -0700) 8 commits
 - t/t9600: remove exit after test_done
 - cvsimport: extend testcase about patchset order to contain
   branches
 - cvsimport: add test illustrating a bug in cvsps
 - Add a test of "git cvsimport"'s handling of tags and branches
 - Add some tests of git-cvsimport's handling of vendor branches
 - Test contents of entire cvsimported "master" tree contents
 - Use CVS's -f option if available (ignore user's ~/.cvsrc file)
 - Start a library for cvsimport-related tests

----------------------------------------------------------------
[Actively cooking]

* ne/maint-1.6.0-diff-tree-t-r-show-directory (Sat Jun 13 17:06:09 2009 -0700) 1 commit
 + diff-tree -r -t: include added/removed directories in the output

This changes the output from "diff-tree -r -t"; it brings more consistency
to it, but it is a change and could break scripts.

* uk/rev-parse-parse-opt (Sun Jun 14 01:58:43 2009 +0200) 2 commits
 + parse-opt: make PARSE_OPT_STOP_AT_NON_OPTION available to git rev-
   parse
 + more tests for git rev-parse --parse-opt

* js/daemon-log (Sun Jun 21 23:16:09 2009 +0200) 3 commits
 + receive-pack: do not send error details to the client
 + upload-pack: squelch progress indicator if client cannot see it
 + daemon: send stderr of service programs to the syslog

* sb/quiet-porcelains (Wed Jun 17 18:07:37 2009 -0700) 6 commits
 + stash: teach quiet option
 + am, rebase: teach quiet option
 + submodule, repack: migrate to git-sh-setup's say()
 + git-sh-setup: introduce say() for quiet options
 + am: suppress apply errors when using 3-way
 + t4150: test applying with a newline in subject

* jk/use-our-regexp (Fri Jun 19 10:10:39 2009 -0500) 3 commits
 + Makefile: Solaris needs HAVE_ALLOCA_H for alloca()
 + Makefile: use compat regex on Solaris
 + Makefile: refactor regex compat support

* cb/maint-fetch-refspec-wo-dst (Wed Jun 17 15:38:36 2009 +0200) 1 commit
 - fetch: do not create ref from empty name

* cc/bisect (Sat Jun 13 13:11:02 2009 +0200) 2 commits
 + Documentation: remove warning saying that "git bisect skip" may
   slow bisection
 + bisect: use a PRNG with a bias when skipping away from untestable
   commits

* tr/die_errno (Sat Jun 27 17:58:47 2009 +0200) 4 commits
 - Use die_errno() instead of die() when checking syscalls
 - Convert existing die(..., strerror(errno)) to die_errno()
 - die_errno(): double % in strerror() output just in case
 - Introduce die_errno() that appends strerror(errno) to die()

I didn't check the individual conversion from die() to die_errno()
in this latest round; comments?

* ne/futz-upload-pack (Wed Jun 10 01:50:18 2009 +0200) 1 commit
 - Shift object enumeration out of upload-pack

* ml/http (Wed May 27 23:16:03 2009 -0400) 2 commits
 - http.c: add http.sslCertPasswordProtected option
 - http.c: prompt for SSL client certificate password

I've rewritten these two to (1) move the #ifdef out of the main codepath,
and (2) use configuration/environment to make the misfeature of always
asking for a passphrase even a key/cert is unencrypted optional.  I tried
to be careful but extra sets of eyeballs would be nice to check the result.

* gb/am-foreign (Wed May 27 11:25:19 2009 +0200) 4 commits
 - git-am: refactor 'cleaning up and aborting'
 - git-am foreign patch support: StGIT support
 - git-am foreign patch support: autodetect some patch formats
 - git-am foreign patch support: introduce patch_format

Will be in 'next' shortly.

* jc/diff-whitespace-only-status (Sat May 23 01:15:35 2009 -0700) 2 commits
 - diff: Rename QUIET internal option to QUICK
 - diff: change semantics of "ignore whitespace" options

I am not sure if it should wait for a major version bump but this is a
good semantics change.  Perhaps merge to 'next' soonish, but I am
undecided.  Comments?

* cc/replace (Wed May 27 07:14:09 2009 +0200) 14 commits
 - t6050: check pushing something based on a replaced commit
 - Documentation: add documentation for "git replace"
 - Add git-replace to .gitignore
 - builtin-replace: use "usage_msg_opt" to give better error messages
 - parse-options: add new function "usage_msg_opt"
 - builtin-replace: teach "git replace" to actually replace
 - Add new "git replace" command
 - environment: add global variable to disable replacement
 - mktag: call "check_sha1_signature" with the replacement sha1
 - replace_object: add a test case
 - object: call "check_sha1_signature" with the replacement sha1
 - sha1_file: add a "read_sha1_file_repl" function
 - replace_object: add mechanism to replace objects found in
   "refs/replace/"
 - refs: add a "for_each_replace_ref" function

----------------------------------------------------------------
[On Hold]

* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit
 - receive-pack: default receive.denyDeleteCurrent to refuse

* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit
 - Refuse updating the current branch in a non-bare repository via
   push

These are for 1.7.0, but the messages when they trigger together may need
to be rethought.

^ permalink raw reply	[relevance 2%]

* [ANNOUNCE] GIT 1.6.3.3
@ 2009-06-22  7:49  3% Junio C Hamano
  0 siblings, 0 replies; 9+ results
From: Junio C Hamano @ 2009-06-22  7:49 UTC (permalink / raw)
  To: git

The latest maintenance release, GIT 1.6.3.3, is available at the usual
places:

  http://www.kernel.org/pub/software/scm/git/

  git-1.6.3.3.tar.{gz,bz2}			(source tarball)
  git-htmldocs-1.6.3.3.tar.{gz,bz2}		(preformatted docs)
  git-manpages-1.6.3.3.tar.{gz,bz2}		(preformatted docs)

The RPM binary packages for a few architectures are found in:

  RPMS/$arch/git-*-1.6.3.3-1.fc9.$arch.rpm	(RPM)

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.

----------------------------------------------------------------

Changes since v1.6.3.2 are as follows:

Anders Kaseorg (1):
      for-each-ref: Do not lookup objects when they will not be used

Clemens Buchacher (1):
      refuse to merge during a merge

Jim Meyering (1):
      use xstrdup, not strdup in ll-merge.c

Johannes Schindelin (1):
      import-tars: support symlinks

Johannes Sixt (2):
      fetch-pack: close output channel after sideband demultiplexer terminates
      diff.c: plug a memory leak in an error path

Junio C Hamano (3):
      t3505: fix abuse of test_expect_code
      attribute: whitespace set to true detects all errors known to git
      GIT 1.6.3.3

Linus Torvalds (1):
      Fix big left-shifts of unsigned char

Marco Nelissen (1):
      fix handling of iconv configuration options

Mark Lodato (1):
      http.c: fix compiling with libcurl 7.9.2

Michael J Gruber (1):
      builtin-remote: Make "remote show" display all urls

Miklos Vajna (1):
      git-svn documentation: fix typo in 'rebase vs. pull/merge' section

Nanako Shiraishi (1):
      .gitattributes: CR at the end of the line is an error

Paolo Bonzini (2):
      Documentation: git-send-mail can take rev-list arg to drive format-patch
      avoid exponential regex match for java and objc function names

René Scharfe (1):
      upload-archive: fix infinite loop on Cygwin

Shawn O. Pearce (1):
      daemon: Strictly parse the "extra arg" part of the command

Stephen Boyd (3):
      git-rerere.txt: grammatical fixups and cleanups
      pull, rebase: simplify to use die()
      git-show-ref.txt: remove word and make consistent
v
Tay Ray Chuan (1):
      http*: cleanup slot->local after fclose

Thomas Rast (1):
      Documentation: refer to gitworkflows(7) from tutorial and git(1)

Uwe Kleine-König (1):
      rebase--interactive: remote stray closing parenthesis

^ permalink raw reply	[relevance 3%]

* What's cooking in git.git (Jun 2009, #02; Thu, 18)
@ 2009-06-18 21:08  2% Junio C Hamano
  0 siblings, 0 replies; 9+ results
From: Junio C Hamano @ 2009-06-18 21:08 UTC (permalink / raw)
  To: git

Here are the topics that have been cooking.  Commits prefixed with '-' are
only in 'pu' while commits prefixed with '+' are in 'next'.  The ones
marked with '.' do not appear in any of the branches, but I am still
holding onto them.

The topics list the commits in reverse chronological order.  The topics
meant to be merged to the maintenance series have "maint-" in their names.

Unfortunately I am unusually short of time these days, and some of the
topics unfortunately got less "final review before deciding to merge up"
than I would have liked to give them.  This message itself has more
"please comment/review" requests than usual.

----------------------------------------------------------------
[New Topics]

* ne/maint-1.6.0-diff-tree-t-r-show-directory (Sat Jun 13 17:06:09 2009 -0700) 1 commit
 - diff-tree -r -t: include added/removed directories in the output

* sb/maint-1.6.0-add-config-fix (Thu Jun 18 02:17:54 2009 -0700) 2 commits
 - add: allow configurations to be overriden by command line
 - use xstrdup, not strdup in ll-merge.c

* pb/maint-1.6.2-userdiff-fix (Wed Jun 17 12:11:10 2009 +0200) 2 commits
 - upload-archive: fix infinite loop on Cygwin
 - avoid exponential regex match for java and objc function names

* fc/user-manual (Fri May 1 11:44:20 2009 +0300) 2 commits
 . user-manual: use 'fast-forward' instead of 'fast forward'
 . user-manual: general quoting improvements

* uk/rev-parse-parse-opt (Sun Jun 14 01:58:43 2009 +0200) 2 commits
 - parse-opt: make PARSE_OPT_STOP_AT_NON_OPTION available to git rev-
   parse
 - more tests for git rev-parse --parse-opt

* js/daemon-log (Tue Jun 16 20:41:16 2009 +0200) 2 commits
 - upload-pack: squelch progress indicator if client cannot see it
 - daemon: send stderr of service programs to the syslog

* sb/quiet-porcelains (Wed Jun 17 18:07:37 2009 -0700) 6 commits
 - stash: teach quiet option
 - am, rebase: teach quiet option
 - submodule, repack: migrate to git-sh-setup's say()
 - git-sh-setup: introduce say() for quiet options
 - am: suppress apply errors when using 3-way
 - t4150: test applying with a newline in subject

* lt/maint-unsigned-left-shift (Wed Jun 17 17:22:27 2009 -0700) 1 commit
 - Fix big left-shifts of unsigned char

* jk/use-our-regexp (Tue Jun 16 15:08:21 2009 -0400) 2 commits
 - Makefile: use compat regex on Solaris
 - Makefile: refactor regex compat support

* cb/maint-fetch-refspec-wo-dst (Wed Jun 17 15:38:36 2009 +0200) 1 commit
 - fetch: do not create ref from empty name

* pb/send-email-cccmd-fix (Thu Jun 18 14:31:32 2009 +0200) 1 commit
 - Test cccmd in t9001-send-email.sh and fix some bugs

----------------------------------------------------------------
[Graduated to "master"]

* cb/maint-no-double-merge (Mon Jun 1 11:20:56 2009 +0200) 1 commit
 + refuse to merge during a merge

* sp/msysgit (Thu Jun 11 22:56:12 2009 +0200) 13 commits
 + compat/ has subdirectories: do not omit them in 'make clean'
 + Fix typo in nedmalloc warning fix
 + MinGW: Teach Makefile to detect msysgit and apply specific
   settings
 + Fix warnings in nedmalloc when compiling with GCC 4.4.0
 + Add custom memory allocator to MinGW and MacOS builds
 + MinGW readdir reimplementation to support d_type
 + connect.c: Support PuTTY plink and TortoisePlink as SSH on Windows
 + git: browsing paths with spaces when using the start command
 + MinGW: fix warning about implicit declaration of _getch()
 + test-chmtime: work around Windows limitation
 + Work around a regression in Windows 7, causing erase_in_line() to
   crash sometimes
 + Quiet make: do not leave Windows behind
 + MinGW: GCC >= 4 does not need SNPRINTF_SIZE_CORR anymore

* mh/fix-send-email-threaded (Fri Jun 12 09:23:43 2009 -0700) 7 commits
 + Merge branch 'mh/maint-fix-send-email-threaded' into
   mh/fix-send-email-threaded
 + send-email: fix a typo in a comment
 + send-email: fix threaded mails without chain-reply-to
 + add a test for git-send-email for threaded mails without chain-reply-to
 + doc/send-email: clarify the behavior of --in-reply-to with
   --no-thread
 + send-email: fix non-threaded mails
 + add a test for git-send-email for non-threaded mails

* rc/maint-http-local-slot-fix (Sat Jun 6 16:43:26 2009 +0800) 1 commit
 + http*: cleanup slot->local after fclose

* sb/parse-options-integer (Thu Jun 4 16:43:57 2009 -0700) 2 commits
 + parse-options: simplify usage argh handling
 + parse-options: make OPT_INTEGER's argh explicit

* bc/solaris (Sun Jun 7 07:40:29 2009 +0200) 10 commits
 + configure: test whether -lresolv is needed
 + Makefile: insert SANE_TOOL_PATH to PATH before /bin or /usr/bin
 + git-compat-util.h: avoid using c99 flex array feature with Sun
   compiler 5.8
 + Makefile: add section for SunOS 5.7
 + Makefile: introduce SANE_TOOL_PATH for prepending required
   elements to PATH
 + Makefile: define __sun__ on SunOS
 + git-compat-util.h: tweak the way _XOPEN_SOURCE is set on Solaris
 + On Solaris choose the OLD_ICONV iconv() declaration based on the
   UNIX spec
 + Makefile: add NEEDS_RESOLV to optionally add -lresolv to compile
   arguments
 + Makefile: use /usr/ucb/install on SunOS platforms rather than
   ginstall

* cb/match_refs_internal_tail (Sun May 31 16:26:48 2009 +0200) 1 commit
 + match_refs: search ref list tail internally

* nw/maint-cvsexportcommit (Fri May 29 00:23:33 2009 +0100) 1 commit
 + git-cvsexportcommit can't commit files which have been removed
   from CVS

* ak/maint-for-each-ref-no-lookup (Wed May 27 15:23:12 2009 -0400) 1 commit
 + for-each-ref: Do not lookup objects when they will not be used

I think this makes sense, except that I have this nagging feeling that its
use of for_each_rawref() where the original used for_each_ref() may have
some unintended side effects in corner cases.

* da/araxis-mergetool (Sun May 24 00:24:41 2009 +0000) 1 commit
 + mergetool--lib: add support for araxis merge

* rc/http-push (Sat Jun 6 16:44:02 2009 +0800) 24 commits
 + http*: add helper methods for fetching objects (loose)
 + http*: add helper methods for fetching packs
 + http: use new http API in fetch_index()
 + http*: add http_get_info_packs
 + http-push.c::fetch_symref(): use the new http API
 + http-push.c::remote_exists(): use the new http API
 + http.c::http_fetch_ref(): use the new http API
 + transport.c::get_refs_via_curl(): use the new http API
 + http.c: new functions for the http API
 + http: create function end_url_with_slash
 + http*: move common variables and macros to http.[ch]
 + transport.c::get_refs_via_curl(): do not leak refs_url
 + Don't expect verify_pack() callers to set pack_size
 + http-push: do not SEGV after fetching a bad pack idx file
 + http*: copy string returned by sha1_to_hex
 + http-walker: verify remote packs
 + http-push, http-walker: style fixes
 + t5550-http-fetch: test fetching of packed objects
 + http-push: fix missing "#ifdef USE_CURL_MULTI" around
   "is_running_queue"
 + http-push: send out fetch requests on queue
 + t5540-http-push: test fetching of packed objects
 + t5540-http-push: test fetching of loose objects
 + Merge branch 'rc/maint-http-local-slot-fix' into rc/http-push
 + http*: cleanup slot->local after fclose

* cc/bisect (Sat Jun 6 06:41:35 2009 +0200) 5 commits
 + t6030: test skipping away from an already skipped commit
 + bisect: when skipping, choose a commit away from a skipped commit
 + bisect: add parameters to "filter_skipped"
 + bisect: display first bad commit without forking a new process
 + bisect: drop unparse_commit() and use clear_commit_marks()

Regardless of metrics, this is an improvement from the current one.  Will
merge to 'master', and let the finer details taken care of later, which
is already happening.

----------------------------------------------------------------
[Will merge to "master" soon]

* ph/submodule-rebase (Wed Jun 3 00:59:12 2009 +0200) 1 commit
 + git-submodule: add support for --merge.

Even though some might still argue that "update --merge" is not a good
mode of operation.

* jc/cache-tree (Fri May 22 23:14:25 2009 -0700) 5 commits
 + Avoid "diff-index --cached" optimization under --find-copies-
   harder
 + Optimize "diff-index --cached" using cache-tree
 + t4007: modernize the style
 + cache-tree.c::cache_tree_find(): simplify internal API
 + write-tree --ignore-cache-tree

* mn/maint-iconv-autoconf (Mon Jun 8 20:46:38 2009 -0700) 1 commit
 + fix handling of iconv configuration options

----------------------------------------------------------------
[Stalled and may need help and prodding to go forward]

* jh/notes (Sat May 16 13:44:17 2009 +0200) 5 commits
 - Teach "-m <msg>" and "-F <file>" to "git notes edit"
 - Add an expensive test for git-notes
 - Speed up git notes lookup
 - Add a script to edit/inspect notes
 - Introduce commit notes

Dscho asked about the performance implications of this; I do not think I
saw any progress on that yet...

* lt/read-directory (Fri May 15 12:01:29 2009 -0700) 3 commits
 - Add initial support for pathname conversion to UTF-8
 - read_directory(): infrastructure for pathname character set
   conversion
 - Add 'fill_directory()' helper function for directory traversal

Before adding the real "conversion", this needs a few real fixups, I
think.  For example there is one hardcoded array that is used without
bounds check.

* ar/maint-1.6.2-merge-recursive-d-f (Mon May 11 21:25:36 2009 +0200) 2 commits
 - Fix for a merge where a branch has an F->D transition
 - Add a reminder test case for a merge with F/D transition

Although the reported breakage is covered with the patch, Alex feels the
solution unsatisfactory. Cleaning up D/F conflict handling in merge-recursive
may be long overdue but seems to be a hard problem.

* ps/blame (Thu Mar 12 21:30:03 2009 +1100) 1 commit
 - blame.c: start libifying the blame infrastructure

A few minor point remains in this initial one.

* jc/log-tz (Tue Mar 3 00:45:37 2009 -0800) 1 commit
 - Allow --date=local --date=other-format to work as expected

The one I posted had a few corner-case bugs that was caught with the test
suite; this one has them fixed.  People did not like the UI so it is kept
out of 'next'

* jc/merge-convert (Mon Jan 26 16:45:01 2009 -0800) 1 commit
 - git-merge-file: allow converting the results for the work tree

This is a feature waiting for a user.

We did not give scripted Porcelains a way to say "this temporary file I am
using for merging is for this path, so use the core.autocrlf and attributes
rules for that final path".  Instead, merge-file simply wrote out the
data in the canonical repository representation.

rerere has the same issue, but it is a lot worse.  It reads the three
files (preimage, postimage and thisimage) from the work tree in the work
tree representation, merges them without converting them to the canonical
representation first but inserts the conflict markers with the canonical
representation and writes the resulting mess out.  It needs to be fixed to
read with convert_to_git(), merge them while they are still in the
canonical representation and possibly add conflict markers, and then write
the results out after convert_to_working_tree().  It also needs to write
in binary mode as well.

* db/foreign-scm (Tue Mar 24 23:04:12 2009 -0400) 3 commits
 - Add option for using a foreign VCS
 - Document details of transport function APIs
 - Allow late reporting of fetched hashes

* hv/cvsps-tests (Sun Apr 5 01:40:50 2009 -0700) 8 commits
 - t/t9600: remove exit after test_done
 - cvsimport: extend testcase about patchset order to contain
   branches
 - cvsimport: add test illustrating a bug in cvsps
 - Add a test of "git cvsimport"'s handling of tags and branches
 - Add some tests of git-cvsimport's handling of vendor branches
 - Test contents of entire cvsimported "master" tree contents
 - Use CVS's -f option if available (ignore user's ~/.cvsrc file)
 - Start a library for cvsimport-related tests

----------------------------------------------------------------
[Actively cooking]

* tr/die_errno (Fri Jun 12 09:00:59 2009 -0700) 5 commits
 - DONTMERGE fix double per-cent
 - Use die_errno() instead of die() when checking syscalls
 - Convert existing die(..., strerror(errno)) to die_errno()
 - die_errno(): double % in strerror() output just in case
 - Introduce die_errno() that appends strerror(errno) to die()

I didn't check the individual conversion from die() to die_errno()
in this latest round; comments?

Thomas found issues in my "double per-cent hack", so this cannot be merged
to yet until either it is fixed up, or drop the "double per-cent" attempt
altogether.

* sb/pull-rebase (Fri Jun 12 00:39:21 2009 +0200) 3 commits
 + parse-remote: remove unused functions
 + parse-remote: support default reflist in get_remote_merge_branch
 + parse-remote: function to get the tracking branch to be merge

It would be nice if we can fix the "currently works only for the default
mapping" before it goes to 'master'.  I looked at, but haven't queued any
of the recent RFC updates here.

* ne/futz-upload-pack (Wed Jun 10 01:50:18 2009 +0200) 1 commit
 - Shift object enumeration out of upload-pack

* ml/http (Wed May 27 23:16:03 2009 -0400) 2 commits
 - http.c: add http.sslCertPasswordProtected option
 - http.c: prompt for SSL client certificate password

I've rewritten these two to (1) move the #ifdef out of the main codepath,
and (2) use configuration/environment to make the misfeature of always
asking for a passphrase even a key/cert is unencrypted optional.  I tried
to be careful but extra sets of eyeballs would be nice to check the result.

* mg/pushurl (Sun Jun 14 21:46:10 2009 +0200) 6 commits
 + avoid NULL dereference on failed malloc
 + builtin-remote: Make "remote -v" display push urls
 + builtin-remote: Show push urls as well
 + technical/api-remote: Describe new struct remote member pushurl
 + t5516: Check pushurl config setting
 + Allow push and fetch urls to be different

* cc/bisect (Sat Jun 13 13:11:02 2009 +0200) 2 commits
 - Documentation: remove warning saying that "git bisect skip" may
   slow bisection
 - bisect: use a PRNG with a bias when skipping away from untestable
   commits

Will be in 'next' shortly.

* gb/am-foreign (Wed May 27 11:25:19 2009 +0200) 4 commits
 - git-am: refactor 'cleaning up and aborting'
 - git-am foreign patch support: StGIT support
 - git-am foreign patch support: autodetect some patch formats
 - git-am foreign patch support: introduce patch_format

Will be in 'next' shortly.

* jc/diff-whitespace-only-status (Sat May 23 01:15:35 2009 -0700) 2 commits
 - diff: Rename QUIET internal option to QUICK
 - diff: change semantics of "ignore whitespace" options

I am not sure if it should wait for a major version bump but this is a
good semantics change.  Perhaps merge to 'next' soonish, but I am
undecided.  Comments?

* cc/replace (Wed May 27 07:14:09 2009 +0200) 14 commits
 - t6050: check pushing something based on a replaced commit
 - Documentation: add documentation for "git replace"
 - Add git-replace to .gitignore
 - builtin-replace: use "usage_msg_opt" to give better error messages
 - parse-options: add new function "usage_msg_opt"
 - builtin-replace: teach "git replace" to actually replace
 - Add new "git replace" command
 - environment: add global variable to disable replacement
 - mktag: call "check_sha1_signature" with the replacement sha1
 - replace_object: add a test case
 - object: call "check_sha1_signature" with the replacement sha1
 - sha1_file: add a "read_sha1_file_repl" function
 - replace_object: add mechanism to replace objects found in
   "refs/replace/"
 - refs: add a "for_each_replace_ref" function

----------------------------------------------------------------
[On Hold]

* jc/deny-delete-current-1.7.0 (Mon Feb 9 00:19:46 2009 -0800) 1 commit
 - receive-pack: default receive.denyDeleteCurrent to refuse

* jc/refuse-push-to-current-1.7.0 (Wed Feb 11 02:28:03 2009 -0800) 1 commit
 - Refuse updating the current branch in a non-bare repository via
   push

These are for 1.7.0, but the messages when they trigger together may need
to be rethought.

^ permalink raw reply	[relevance 2%]

* Re: Fix big left-shifts of unsigned char
  2009-06-18 16:45  7%                 ` Johannes Schindelin
@ 2009-06-18 17:15  7%                   ` Linus Torvalds
  0 siblings, 0 replies; 9+ results
From: Linus Torvalds @ 2009-06-18 17:15 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git



On Thu, 18 Jun 2009, Johannes Schindelin wrote:
> 
> The quick hack is not going to be part of sparse.git, I take it?

Not clear yet. I sent a couple of patches to the sparse list already to 
make things go better in general with running sparse on git. I can now do

	make "CC=cgcc -m64"

on my git tree, and get reasonable warnings. I'll play around with it 
that whole left-shift thing a bit more, but before I do that I'll post a 
patch for all the _other_ things sparse found in git.

		Linus

^ permalink raw reply	[relevance 7%]

* Re: Fix big left-shifts of unsigned char
  2009-06-18 16:08  6%               ` Linus Torvalds
@ 2009-06-18 16:45  7%                 ` Johannes Schindelin
  2009-06-18 17:15  7%                   ` Linus Torvalds
  0 siblings, 1 reply; 9+ results
From: Johannes Schindelin @ 2009-06-18 16:45 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

Hi,

On Thu, 18 Jun 2009, Linus Torvalds wrote:

> On Thu, 18 Jun 2009, Johannes Schindelin wrote:
> 
> > I wonder if there is a mode of 'sparse' which could spot these 
> > buggers.
> 
> Hmm. A very quick hack gets me (this is _after_ my patch):
>
> [snip thorough analysis]

Nice.

The quick hack is not going to be part of sparse.git, I take it?

Ciao,
Dscho

^ permalink raw reply	[relevance 7%]

* Re: Fix big left-shifts of unsigned char
  2009-06-18  8:12  7%             ` Johannes Schindelin
  2009-06-18  8:21  7%               ` Junio C Hamano
@ 2009-06-18 16:08  6%               ` Linus Torvalds
  2009-06-18 16:45  7%                 ` Johannes Schindelin
  1 sibling, 1 reply; 9+ results
From: Linus Torvalds @ 2009-06-18 16:08 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git



On Thu, 18 Jun 2009, Johannes Schindelin wrote:
> 
> I wonder if there is a mode of 'sparse' which could spot these buggers.

Hmm. A very quick hack gets me (this is _after_ my patch):

	diffcore-delta.c:53:24: warning: Signed left-shift
	diffcore-delta.c:58:21: warning: Signed left-shift
	diffcore-delta.c:88:21: warning: Signed left-shift

which are all of the type "<< alloc_log", and not very interesting.

	read-cache.c:1155:17: warning: Signed left-shift

This one is "real", and I noticed it in my earlier greps, but we don't 
care (it's the CACHE_EXT_TREE/CACHE_EXT() matching, and it's all done in 
"int", and the only case we care about is a non-signed case anyway)

	imap-send.c:785:52: warning: Signed left-shift
	imap-send.c:1190:35: warning: Signed left-shift

These are both "real", but we're only working on "unsigned" so we don't 
really care.

	builtin-rev-list.c:201:21: warning: Signed left-shift

this is exp2i(), and it returns 'int', and wouldn't work for big left 
shifts anyway.

And just to see that my sparse logic actually worked, _without_ the patch 
I sent to fix left-shifts, I got these:

	base85.c:95:38: warning: Signed left-shift		(fixed)
	diffcore-delta.c:53:24: warning: Signed left-shift
	diffcore-delta.c:58:21: warning: Signed left-shift
	diffcore-delta.c:88:21: warning: Signed left-shift
	delta.h:98:42: warning: Signed left-shift		(fixed)
	delta.h:98:42: warning: Signed left-shift		(dup - inline)
	patch-delta.c:47:63: warning: Signed left-shift		(fixed)
	read-cache.c:1155:17: warning: Signed left-shift
	sha1_file.c:1179:39: warning: Signed left-shift		(fixed)
	delta.h:98:42: warning: Signed left-shift		(dup - inline)
	delta.h:98:42: warning: Signed left-shift		(dup - inline)
	imap-send.c:785:52: warning: Signed left-shift
	imap-send.c:1190:35: warning: Signed left-shift
	builtin-rev-list.c:201:21: warning: Signed left-shift
	builtin-unpack-objects.c:441:39: warning: Signed left-shift (fixed)

just to verify that my sparse checker actually found the ones the patch 
modified.

			Linus

^ permalink raw reply	[relevance 6%]

* Re: Fix big left-shifts of unsigned char
  2009-06-18  8:12  7%             ` Johannes Schindelin
@ 2009-06-18  8:21  7%               ` Junio C Hamano
  2009-06-18 16:08  6%               ` Linus Torvalds
  1 sibling, 0 replies; 9+ results
From: Junio C Hamano @ 2009-06-18  8:21 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Linus Torvalds, git

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> On Wed, 17 Jun 2009, Linus Torvalds wrote:
>
>> This is _not_ tested in any way. And I got bored with getting rid of 
>> 'unsigned char' variables, so I by no means did all of them, just the 
>> first few that caugth my grepping eye.
>
> I wonder if there is a mode of 'sparse' which could spot these buggers.

That's a very good meta question ;-)

^ permalink raw reply	[relevance 7%]

* Re: Fix big left-shifts of unsigned char
  2009-06-18  0:22  4%           ` Fix big left-shifts of unsigned char Linus Torvalds
@ 2009-06-18  8:12  7%             ` Johannes Schindelin
  2009-06-18  8:21  7%               ` Junio C Hamano
  2009-06-18 16:08  6%               ` Linus Torvalds
  0 siblings, 2 replies; 9+ results
From: Johannes Schindelin @ 2009-06-18  8:12 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: git

Hi,

On Wed, 17 Jun 2009, Linus Torvalds wrote:

> This is _not_ tested in any way. And I got bored with getting rid of 
> 'unsigned char' variables, so I by no means did all of them, just the 
> first few that caugth my grepping eye.

I wonder if there is a mode of 'sparse' which could spot these buggers.

Ciao,
Dscho

^ permalink raw reply	[relevance 7%]

* Fix big left-shifts of unsigned char
  @ 2009-06-18  0:22  4%           ` Linus Torvalds
  2009-06-18  8:12  7%             ` Johannes Schindelin
  0 siblings, 1 reply; 9+ results
From: Linus Torvalds @ 2009-06-18  0:22 UTC (permalink / raw)
  To: Alfred M. Szmidt; +Cc: Johannes.Schindelin, git


Shifting 'unsigned char' or 'unsigned short' left can result in sign 
extension errors, since the C integer promotion rules means that the 
unsigned char/short will get implicitly promoted to a signed 'int' due to 
the shift (or due to other operations).

This normally doesn't matter, but if you shift things up sufficiently, it 
will now set the sign bit in 'int', and a subsequent cast to a bigger type 
(eg 'long' or 'unsigned long') will now sign-extend the value despite the 
original expression being unsigned.

One example of this would be something like

	unsigned long size;
	unsigned char c;

	size += c << 24;

where despite all the variables being unsigned, 'c << 24' ends up being a 
signed entity, and will get sign-extended when then doing the addition in 
an 'unsigned long' type.

Since git uses 'unsigned char' pointers extensively, we actually have this 
bug in a couple of places. 

I may have missed some, but this is the result of looking at

	git grep '[^0-9 	][ 	]*<<[ 	][a-z]' -- '*.c' '*.h'
	git grep '<<[   ]*24'

which catches at least the common byte cases (shifting variables by a 
variable amount, and shifting by 24 bits).

I also grepped for just 'unsigned char' variables in general, and 
converted the ones that most obviously ended up getting implicitly cast 
immediately anyway (eg hash_name(), encode_85()).

In addition to just avoiding 'unsigned char', this patch also tries to use 
a common idiom for the delta header size thing. We had three different 
variations on it: "& 0x7fUL" in one place (getting the sign extension 
right), and "& ~0x80" and "& 0x7f" in two other places (not getting it 
right). Apart from making them all just avoid using "unsigned char" at 
all, I also unified them to then use a simple "& 0x7f".

I considered making a sparse extension which warns about doing implicit 
casts from unsigned types to signed types, but it gets rather complex very 
quickly, so this is just a hack. 

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---

This is _not_ tested in any way. And I got bored with getting rid of 
'unsigned char' variables, so I by no means did all of them, just the 
first few that caugth my grepping eye.

On Wed, 17 Jun 2009, Linus Torvalds wrote:
> 
> And I would suggest that Junio just not take patches from people who 
> aren't able to read the existing DCO. It's not worth the pain. 
> 
> 		Linus
> 

 attr.c                   |    3 +--
 base85.c                 |    2 +-
 builtin-pack-objects.c   |    3 +--
 builtin-unpack-objects.c |    4 ++--
 delta.h                  |    5 ++---
 index-pack.c             |    6 +++---
 patch-delta.c            |    2 +-
 sha1_file.c              |    3 +--
 8 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/attr.c b/attr.c
index 98eb636..f8f6faa 100644
--- a/attr.c
+++ b/attr.c
@@ -35,8 +35,7 @@ static struct git_attr *(git_attr_hash[HASHSIZE]);
 
 static unsigned hash_name(const char *name, int namelen)
 {
-	unsigned val = 0;
-	unsigned char c;
+	unsigned val = 0, c;
 
 	while (namelen--) {
 		c = *name++;
diff --git a/base85.c b/base85.c
index b88270f..b417a15 100644
--- a/base85.c
+++ b/base85.c
@@ -91,7 +91,7 @@ void encode_85(char *buf, const unsigned char *data, int bytes)
 		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 --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index 9742b45..941cc2d 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -653,8 +653,7 @@ static void rehash_objects(void)
 
 static unsigned name_hash(const char *name)
 {
-	unsigned char c;
-	unsigned hash = 0;
+	unsigned c, hash = 0;
 
 	if (!name)
 		return 0;
diff --git a/builtin-unpack-objects.c b/builtin-unpack-objects.c
index 9a77323..8e831be 100644
--- a/builtin-unpack-objects.c
+++ b/builtin-unpack-objects.c
@@ -422,8 +422,8 @@ static void unpack_delta_entry(enum object_type type, unsigned long delta_size,
 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 --git a/delta.h b/delta.h
index 40ccf5a..b9d333d 100644
--- a/delta.h
+++ b/delta.h
@@ -90,12 +90,11 @@ static inline unsigned long get_delta_hdr_size(const unsigned char **datap,
 					       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 --git a/index-pack.c b/index-pack.c
index 6e93ee6..0c92baf 100644
--- a/index-pack.c
+++ b/index-pack.c
@@ -293,8 +293,8 @@ static void *unpack_entry_data(unsigned long offset, unsigned long size)
 
 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 @@ static void *unpack_raw_entry(struct object_entry *obj, union delta_base *delta_
 		p = fill(1);
 		c = *p;
 		use(1);
-		size += (c & 0x7fUL) << shift;
+		size += (c & 0x7f) << shift;
 		shift += 7;
 	}
 	obj->size = size;
diff --git a/patch-delta.c b/patch-delta.c
index ed9db81..ef748ce 100644
--- a/patch-delta.c
+++ b/patch-delta.c
@@ -44,7 +44,7 @@ void *patch_delta(const void *src_buf, unsigned long src_size,
 			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 --git a/sha1_file.c b/sha1_file.c
index e73cd4f..8f5fe62 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1162,8 +1162,7 @@ unsigned long unpack_object_header_buffer(const unsigned char *buf,
 		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++];

^ permalink raw reply related	[relevance 4%]

Results 1-9 of 9 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2009-06-14 20:03     [PATCH] Cast things properly to handle >2G files Alfred M. Szmidt
2009-06-14 20:17     ` Johannes Schindelin
2009-06-15  3:39       ` Alfred M. Szmidt
2009-06-15  4:25         ` Linus Torvalds
2009-06-17 22:27           ` Alfred M. Szmidt
2009-06-17 22:45             ` Linus Torvalds
2009-06-18  0:22  4%           ` Fix big left-shifts of unsigned char Linus Torvalds
2009-06-18  8:12  7%             ` Johannes Schindelin
2009-06-18  8:21  7%               ` Junio C Hamano
2009-06-18 16:08  6%               ` Linus Torvalds
2009-06-18 16:45  7%                 ` Johannes Schindelin
2009-06-18 17:15  7%                   ` Linus Torvalds
2009-06-18 21:08  2% What's cooking in git.git (Jun 2009, #02; Thu, 18) Junio C Hamano
2009-06-22  7:49  3% [ANNOUNCE] GIT 1.6.3.3 Junio C Hamano
2009-06-28  7:09  2% What's cooking in git.git (Jun 2009, #03; Sat, 27) Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).