git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* What's cooking in git.git (May 2010, #01; Sun, 2)
@ 2010-05-02 16:12 Junio C Hamano
  2010-05-02 20:01 ` Johannes Sixt
                   ` (3 more replies)
  0 siblings, 4 replies; 16+ messages in thread
From: Junio C Hamano @ 2010-05-02 16:12 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 integration branches, but I am
still holding onto them.

The latest release 1.7.1 has been out for a week and I will soon rewind
'next' and switch 'maint' for 1.7.1.X series.  It appears that no grave
regression has been reported, which is a good sign.

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

* cb/maint-stash-orphaned-file (2010-04-18) 2 commits
  (merged to 'next' on 2010-04-22 at f9de16c)
 + stash tests: stash can lose data in a file removed from the index
 + stash: Don't overwrite files that have gone from the index

* jn/maint-bundle (2010-04-19) 2 commits
  (merged to 'next' on 2010-04-22 at b2668a6)
 + fix "bundle --stdin" segfault
 + t5704 (bundle): add tests for bundle --stdin

* pb/patch-id-plus (2010-04-19) 2 commits
  (merged to 'next' on 2010-04-22 at 5177f8b)
 + patch-id: Add support for mbox format
 + patch-id: extract parsing one diff out of generate_id_list

* rr/doc-submitting (2010-04-19) 1 commit
  (merged to 'next' on 2010-04-22 at b557474)
 + SubmittingPatches: Add new section about what to base work on

* st/remote-tags-no-tags (2010-04-20) 2 commits
 - remote add: add a --[no-]tags option
 - Honor "tagopt = --tags" configuration option

* jc/rev-list-ancestry-path (2010-04-20) 1 commit
 - revision: --ancestry-path

Just an illustration patch.  merge simplification logic used when
pathspecs are in effect interacts with this rather badly.

* cb/assume-unchanged-fix (2010-05-01) 2 commits
 - Documentation: git-add does not update files marked "assume unchanged"
 - do not overwrite files marked "assume unchanged"

* jn/fsck-ident (2010-04-24) 1 commit
 - fsck: check ident lines in commit objects

* jn/gitweb-caching-prep (2010-04-24) 5 commits
 - gitweb: Move generating page title to separate subroutine
 - gitweb: Add custom error handler using die_error
 - gitweb: Use nonlocal jump instead of 'exit' in die_error
 - gitweb: href(..., -path_info => 0|1)
 - Export more test-related variables when running external tests

* jn/gitweb-install (2010-05-01) 2 commits
 - gitweb: Create install target for gitweb in Makefile
 - gitweb: Improve installation instructions in gitweb/INSTALL

* jn/gitweb-our-squelch (2010-04-30) 1 commit
 - gitweb: Silence 'Variable VAR may be unavailable' warnings

* jn/maint-request-pull (2010-04-24) 2 commits
 - request-pull: protect against OPTIONS_KEEPDASHDASH from environment
 - tests for request-pull
 (this branch is used by jn/request-pull.)

* jn/request-pull (2010-04-24) 2 commits
 - adapt request-pull tests for new pull request format
 - Merge branch 'jn/maint-request-pull' into jn/request-pull
 (this branch uses jn/maint-request-pull.)

* jn/shortlog (2010-04-26) 4 commits
 . pretty: Respect --abbrev option
 . shortlog: Document and test --format option
 . t4201 (shortlog): Test output format with multiple authors
 . t4201 (shortlog): guard setup with test_expect_success

This seems to cause intermittent test failure for me especially when run
under "make -j4".

* wp/pretty-enhancement (2010-04-30) 5 commits
 - pretty: add aliases for pretty formats
 - pretty: add infrastructure to allow format aliases
 - pretty: make it easier to add new formats
 - pretty: make %H/%h/etc respect --abbrev[-commit]
 - pretty: add conditional %C?colorname placeholders

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

* jc/doc-submit-gmail (2010-04-07) 1 commit
  (merged to 'next' on 2010-04-10 at cd4e8cf)
 + SubmittingPatches: update GMail section

* jg/auto-initialize-notes-with-percent-n-in-format (2010-04-13) 1 commit
 + pretty: Initialize notes if %N is used

* jk/maint-diffstat-overflow (2010-04-17) 1 commit
 + diff: use large integers for diffstat calculations

* rr/remote-helper-doc (2010-04-07) 3 commits
 + Documentation/remote-helpers: Add invocation section
 + Documentation/urls: Rewrite to accomodate <transport>::<address>
 + Documentation/remote-helpers: Rewrite description

* wp/doc-filter-direction (2010-04-17) 1 commit
 + documentation: clarify direction of core.autocrlf

These were pushed out as part of 1.7.1

--------------------------------------------------
[Stalled]

* js/rebase-origin-x (2010-02-05) 1 commit
 - [RFC w/o test and incomplete] rebase: add -x option to record original commit name

I retract my objection against the idea of -x; needs polishing before
moving forward.

* js/grep-open (2010-05-01) 3 commits
 - grep: do not ignore return value from chdir()
 - grep -O: allow optional argument specifying the pager (or editor)
 - grep: Add the option '--open-files-in-pager'
 (this branch is used by jp/hold-string-list-sanity.)

Probably needs to support --no-index mode as well.

* jp/hold-string-list-sanity (2010-04-06) 9 commits
 . string_list: Fix argument order for string_list_append
 . Merge branch 'sr/remote-helper-export' into HEAD
 . Merge branch 'js/grep-open' into HEAD
 . Merge branch 'sb/fmt-merge-msg' into HEAD
 . string_list: Fix argument order for string_list_lookup
 . string_list: Fix argument order for string_list_insert_at_index
 . string_list: Fix argument order for string_list_insert
 . string_list: Fix argument order for for_each_string_list
 . string_list: Fix argument order for print_string_list
 (this branch uses js/grep-open and sr/remote-helper-export.)

Building this on top of slushy codebase is not a very promising endeavor.
Good thing to do, but it came at a bad time.

--------------------------------------------------
[Cooking]

* jn/t7006-fixup (2010-04-14) 1 commit
  (merged to 'next' on 2010-04-22 at 358ea26)
 + t7006: guard cleanup with test_expect_success

* js/maint-receive-pack-symref-alias (2010-04-19) 3 commits
  (merged to 'next' on 2010-04-22 at 5d1338f)
 + t5516-fetch-push.sh: style cleanup
 + receive-pack: detect aliased updates which can occur with symrefs
 + receive-pack: switch global variable 'commands' to a parameter

* sp/maint-dumb-http-pack-reidx (2010-04-19) 12 commits
  (merged to 'next' on 2010-04-22 at c94f19e)
 + http.c::new_http_pack_request: do away with the temp variable filename
 + http-fetch: Use temporary files for pack-*.idx until verified
 + http-fetch: Use index-pack rather than verify-pack to check packs
 + Allow parse_pack_index on temporary files
 + Extract verify_pack_index for reuse from verify_pack
 + Introduce close_pack_index to permit replacement
 + http.c: Remove unnecessary strdup of sha1_to_hex result
 + http.c: Don't store destination name in request structures
 + http.c: Drop useless != NULL test in finish_http_pack_request
 + http.c: Tiny refactoring of finish_http_pack_request
 + t5550-http-fetch: Use subshell for repository operations
 + http.c: Remove bad free of static block

* hg/id-munging (2010-04-06) 2 commits
 - convert: Keep foreign $Id$ on checkout.
 - convert: Safer handling of $Id$ contraction.

* jn/submodule-basic-test (2010-04-10) 3 commits
  (merged to 'next' on 2010-04-22 at 6d22343)
 + t7400: clarify submodule update tests
 + t7400: clarify 'submodule add' tests
 + t7400: split setup into multiple tests

* np/index-pack-memsave (2010-04-12) 3 commits
  (merged to 'next' on 2010-04-22 at 4135456)
 + index-pack: smarter memory usage when appending objects
 + index-pack: rationalize unpack_entry_data()
 + index-pack: smarter memory usage when resolving deltas

* jc/am-3-show-corrupted-patch (2010-04-09) 1 commit
  (merged to 'next' on 2010-04-22 at 49959c8)
 + am -3: recover the diagnostic messages for corrupt patches

* jc/maint-no-reflog-expire-unreach-for-head (2010-04-09) 3 commits
  (merged to 'next' on 2010-04-22 at bf9c927)
 + reflog --expire-unreachable: special case entries in "HEAD" reflog
 + more war on "sleep" in tests
 + Document gc.<pattern>.reflogexpire variables
 (this branch uses jc/maint-reflog-expire-unreachable.)

Rerolled; instead of ignoring the configuration like the previous round
did, this one prunes stale entries that are unreachable from any ref from
the reflog of HEAD.

* cw/maint-exec-defpath (2010-04-15) 2 commits
  (merged to 'next' on 2010-04-22 at e990e5b)
 + autoconf: Check if <paths.h> exists and set HAVE_PATHS_H
 + exec_cmd.c: replace hard-coded path list with one from <paths.h>

* tr/word-diff (2010-04-14) 1 commit
  (merged to 'next' on 2010-04-22 at a10062e)
 + diff: add --word-diff option that generalizes --color-words

There are gitk patches that go with this series.

* sp/maint-describe-tiebreak-with-tagger-date (2010-04-12) 5 commits
  (merged to 'next' on 2010-04-22 at f712ae9)
 + describe: Break annotated tag ties by tagger date
 + tag.c: Parse tagger date (if present)
 + tag.c: Refactor parse_tag_buffer to be saner to program
 + tag.h: Remove unused signature field
 + tag.c: Correct indentation

* bg/apply-blank-trailing-context (2010-04-08) 1 commit
  (merged to 'next' on 2010-04-14 at a393c0b)
 + apply: Allow blank *trailing* context lines to match beyond EOF

* bg/send-email-smtpdomain (2010-04-10) 4 commits
  (merged to 'next' on 2010-04-14 at 88fff99)
 + send-email: Cleanup smtp-domain and add config
 + Document send-email --smtp-domain
 + send-email: Don't use FQDNs without a '.'
 + send-email: Cleanup { style

* rc/ls-remote-default (2010-04-09) 1 commit
  (merged to 'next' on 2010-04-14 at d5081bd)
 + ls-remote: fall-back to default remotes when no remote specified

* rc/maint-curl-helper (2010-04-08) 3 commits
  (merged to 'next' on 2010-04-14 at 2eb9177)
 + remote-curl: ensure that URLs have a trailing slash
 + http: make end_url_with_slash() public
 + t5541-http-push: add test for URLs with trailing slash

* hg/maint-attr-fix (2010-04-06) 3 commits
  (merged to 'next' on 2010-04-14 at a27c7d7)
 + attr: Expand macros immediately when encountered.
 + attr: Allow multiple changes to an attribute on the same line.
 + attr: Fixed debug output for macro expansion.

* jc/status-show-ignored (2010-05-01) 6 commits
  (merged to 'next' on 2010-05-01 at 6845abd)
 + wt-status: fix 'fprintf' compilation warning
  (merged to 'next' on 2010-04-22 at c6abe03)
 + status: --ignored option shows ignored files
 + wt-status: rename and restructure status-print-untracked
 + wt-status: collect ignored files
 + wt-status: plug memory leak while collecting untracked files
 + wt-status: remove unused workdir_untracked member

I am negative about conflating the JSON output to the mix at this point.
Let's stabilize "status" with the existing --porcelain/-z option first.

* eb/unpretty-b-format (2010-03-24) 1 commit
  (merged to 'next' on 2010-04-07 at 7f5c112)
 + Add `%B' in format strings for raw commit body in `git log' and friends

* ab/commit-empty-message (2010-04-06) 1 commit
  (merged to 'next' on 2010-04-07 at 701e863)
 + Add option to git-commit to allow empty log messages

* jc/test-sleepless (2010-04-06) 1 commit
  (merged to 'next' on 2010-04-07 at 8ccf40a)
 + war on "sleep" in tests

* jc/maint-reflog-expire-unreachable (2010-04-07) 1 commit
  (merged to 'next' on 2010-04-22 at 2a46172)
 + reflog --expire-unreachable: avoid merge-base computation
 (this branch is used by jc/maint-no-reflog-expire-unreach-for-head.)

* np/malloc-threading (2010-04-08) 2 commits
  (merged to 'next' on 2010-04-10 at e1730fb)
 + Thread-safe xmalloc and xrealloc needs a recursive mutex
 + Make xmalloc and xrealloc thread-safe

The fix should eventually go to 'maint' and 'master'.  This queues the one
from J6t for Windows compatibility.

* js/async-thread (2010-03-09) 7 commits
  (merged to 'next' on 2010-04-22 at ee8874e)
 + Enable threaded async procedures whenever pthreads is available
  (merged to 'next' on 2010-03-20 at 9939243)
 + Dying in an async procedure should only exit the thread, not the process.
 + Reimplement async procedures using pthreads
 + Windows: more pthreads functions
 + Fix signature of fcntl() compatibility dummy
 + Make report() from usage.c public as vreportf() and use it.
 + Modernize t5530-upload-pack-error.

As the malloc-threading topic has been cooking for a while, the tip one
may not be so bad to unleash to 'next' users, especially because we are in
the pre-release feature freeze.

* sd/log-decorate (2010-04-08) 6 commits
  (merged to 'next' on 2010-04-08 at 68fee56)
 + log.decorate: only ignore it under "log --pretty=raw"
 + script with rev-list instead of log
  (merged to 'next' on 2010-04-06 at 992c9ad)
 + log --pretty/--oneline: ignore log.decorate
  (merged to 'next' on 2010-03-08 at 58a6fba)
 + log.decorate: usability fixes
 + Add `log.decorate' configuration variable.
 + git_config_maybe_bool()

* mh/status-optionally-refresh (2010-04-03) 3 commits
  (merged to 'next' on 2010-04-05 at 0e64aac)
 + t7508: add a test for "git status" in a read-only repository
 + git status: refresh the index if possible
 + t7508: add test for "git status" refreshing the index

* cw/ws-indent-with-tab (2010-04-03) 6 commits
  (merged to 'next' on 2010-04-05 at 5b5e579)
 + whitespace: tests for git-apply --whitespace=fix with tab-in-indent
 + whitespace: add tab-in-indent support for --whitespace=fix
 + whitespace: replumb ws_fix_copy to take a strbuf *dst instead of char *dst
 + whitespace: tests for git-diff --check with tab-in-indent error class
 + whitespace: add tab-in-indent error class
 + whitespace: we cannot "catch all errors known to git" anymore

* sr/remote-helper-export (2010-04-12) 9 commits
  (merged to 'next' on 2010-04-12 at cefbb2f)
 + t5800: testgit helper requires Python support
  (merged to 'next' on 2010-04-09 at 94f6e3d)
 + Makefile: Simplify handling of python scripts
  (merged to 'next' on 2010-04-07 at 5651307)
 + remote-helpers: add tests for testgit helper
 + remote-helpers: add testgit helper
 + remote-helpers: add support for an export command
 + remote-helpers: allow requesing the path to the .git directory
 + fast-import: always create marks_file directories
 + clone: also configure url for bare clones
 + clone: pass the remote name to remote_get
 (this branch is used by jp/hold-string-list-sanity.)

* cc/revert-strategy (2010-03-31) 5 commits
  (merged to 'next' on 2010-04-05 at 50909c1)
 + revert: add "--strategy" option to choose merge strategy
 + merge: make function try_merge_command non static
 + merge: refactor code that calls "git merge-STRATEGY"
 + revert: refactor merge recursive code into its own function
 + revert: use strbuf to refactor the code that writes the merge message

This is more about debugging and we are not in a great hurry.

* sc/http-late-auth (2010-04-01) 1 commit
  (merged to 'next' on 2010-04-02 at c991acf)
 + Prompt for a username when an HTTP request 401s

* jk/cached-textconv (2010-04-01) 5 commits
  (merged to 'next' on 2010-04-02 at a023e3c)
 + diff: avoid useless filespec population
 + diff: cache textconv output
 + textconv: refactor calls to run_textconv
 + introduce notes-cache interface
 + make commit_tree a library function

The small leak fixes in the beginning of the series has been merged to
'master' after a minor fixup.

* ld/discovery-limit-to-fs (2010-04-04) 6 commits
 - write-index: check and warn when worktree crosses a filesystem boundary
  (merged to 'next' on 2010-04-07 at 11ea09a)
 + Rename ONE_FILESYSTEM to DISCOVERY_ACROSS_FILESYSTEM
 + GIT_ONE_FILESYSTEM: flip the default to stop at filesystem boundaries
 + Add support for GIT_ONE_FILESYSTEM
 + truncate cwd string before printing error message
 + config.c: remove static keyword from git_env_bool()

The tip one is a bit iffy; the whole series changes behaviour in a corner
case, and is not a 1.7.1 material.

* pc/remove-warn (2010-03-26) 4 commits
  (merged to 'next' on 2010-04-02 at 52fc00d)
 + Remove a redundant errno test in a usage of remove_path
 + Introduce remove_or_warn function
 + Implement the rmdir_or_warn function
 + Generalise the unlink_or_warn function

I cherry-picked only obviously sensible bits.

* em/checkout-orphan (2010-03-21) 1 commit
  (merged to 'next' on 2010-03-28 at 86b6a4f)
 + git checkout: create unparented branch by --orphan

Perhaps needs a bit of documentation updates, describing the "going open
source" scenario.

* ar/config-from-command-line (2010-03-26) 2 commits
  (merged to 'next' on 2010-04-07 at e50fd3a)
 + Use strbufs instead of open-coded string manipulation
 + Allow passing of configuration parameters in the command line

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: What's cooking in git.git (May 2010, #01; Sun, 2)
  2010-05-02 16:12 What's cooking in git.git (May 2010, #01; Sun, 2) Junio C Hamano
@ 2010-05-02 20:01 ` Johannes Sixt
  2010-05-08 15:13   ` [PATCH 1/2] Have set_try_to_free_routine return the previous routine Johannes Sixt
  2010-05-03 12:48 ` What's cooking in git.git (May 2010, #01; Sun, 2) Jakub Narebski
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 16+ messages in thread
From: Johannes Sixt @ 2010-05-02 20:01 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Nicolas Pitre

Am 02.05.2010 18:12, schrieb Junio C Hamano:
> * np/malloc-threading (2010-04-08) 2 commits
>    (merged to 'next' on 2010-04-10 at e1730fb)
>   + Thread-safe xmalloc and xrealloc needs a recursive mutex
>   + Make xmalloc and xrealloc thread-safe
> 
> The fix should eventually go to 'maint' and 'master'.  This queues the one
> from J6t for Windows compatibility.
> 
> * js/async-thread (2010-03-09) 7 commits
>    (merged to 'next' on 2010-04-22 at ee8874e)
>   + Enable threaded async procedures whenever pthreads is available
>    (merged to 'next' on 2010-03-20 at 9939243)
>   + Dying in an async procedure should only exit the thread, not the process.
>   + Reimplement async procedures using pthreads
>   + Windows: more pthreads functions
>   + Fix signature of fcntl() compatibility dummy
>   + Make report() from usage.c public as vreportf() and use it.
>   + Modernize t5530-upload-pack-error.
> 
> As the malloc-threading topic has been cooking for a while, the tip one
> may not be so bad to unleash to 'next' users, especially because we are in
> the pre-release feature freeze.

Note that np/malloc-threading does not help the potential xmalloc race
condition in js/async-thread topic at all. :-( np/malloc-threading is only
about a race that is internal in pack-objects.

Now that you force me to think about the problem, I suggest something along
these lines: Disable try_to_free_routine when GIT_TRACE is set, and require
callers of set_try_to_free_routine to restore the previous routine.

diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 214d7ef..0e81673 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -1529,6 +1529,8 @@ static void try_to_free_from_threads(size_t size)
 	read_unlock();
 }
 
+try_to_free_t old_try_to_free_routine;
+
 /*
  * The main thread waits on the condition that (at least) one of the workers
  * has stopped working (which is indicated in the .working member of
@@ -1563,12 +1565,12 @@ static void init_threaded_search(void)
 	pthread_mutex_init(&cache_mutex, NULL);
 	pthread_mutex_init(&progress_mutex, NULL);
 	pthread_cond_init(&progress_cond, NULL);
-	set_try_to_free_routine(try_to_free_from_threads);
+	old_try_to_free_routine = set_try_to_free_routine(try_to_free_from_threads);
 }
 
 static void cleanup_threaded_search(void)
 {
-	set_try_to_free_routine(NULL);
+	set_try_to_free_routine(old_try_to_free_routine);
 	pthread_cond_destroy(&progress_cond);
 	pthread_mutex_destroy(&read_mutex);
 	pthread_mutex_destroy(&cache_mutex);
diff --git a/git-compat-util.h b/git-compat-util.h
index 4a508c1..51d2a01 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -357,7 +357,8 @@ static inline void *gitmempcpy(void *dest, const void *src, size_t n)
 
 extern void release_pack_memory(size_t, int);
 
-extern void set_try_to_free_routine(void (*routine)(size_t));
+typedef void (*try_to_free_t)(size_t);
+extern try_to_free_t set_try_to_free_routine(try_to_free_t);
 
 extern char *xstrdup(const char *str);
 extern void *xmalloc(size_t size);
diff --git a/trace.c b/trace.c
index 4229ae1..9816a8b 100644
--- a/trace.c
+++ b/trace.c
@@ -72,6 +72,7 @@ void trace_printf(const char *fmt, ...)
 	if (!fd)
 		return;
 
+	set_try_to_free_routine(NULL);
 	strbuf_init(&buf, 64);
 	va_start(ap, fmt);
 	len = vsnprintf(buf.buf, strbuf_avail(&buf), fmt, ap);
@@ -103,6 +104,7 @@ void trace_argv_printf(const char **argv, const char *fmt, ...)
 	if (!fd)
 		return;
 
+	set_try_to_free_routine(NULL);
 	strbuf_init(&buf, 64);
 	va_start(ap, fmt);
 	len = vsnprintf(buf.buf, strbuf_avail(&buf), fmt, ap);
diff --git a/wrapper.c b/wrapper.c
index 62edb57..02da613 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -10,9 +10,11 @@ static void try_to_free_builtin(size_t size)
 
 static void (*try_to_free_routine)(size_t size) = try_to_free_builtin;
 
-void set_try_to_free_routine(void (*routine)(size_t))
+try_to_free_t set_try_to_free_routine(try_to_free_t routine)
 {
-	try_to_free_routine = (routine) ? routine : try_to_free_builtin;
+	try_to_free_t old = try_to_free_routine;
+	try_to_free_routine = routine;
+	return old;
 }
 
 char *xstrdup(const char *str)
@@ -33,8 +35,10 @@ void *xmalloc(size_t size)
 	if (!ret && !size)
 		ret = malloc(1);
 	if (!ret) {
-		try_to_free_routine(size);
-		ret = malloc(size);
+		if (try_to_free_routine) {
+			try_to_free_routine(size);
+			ret = malloc(size);
+		}
 		if (!ret && !size)
 			ret = malloc(1);
 		if (!ret)

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: What's cooking in git.git (May 2010, #01; Sun, 2)
  2010-05-02 16:12 What's cooking in git.git (May 2010, #01; Sun, 2) Junio C Hamano
  2010-05-02 20:01 ` Johannes Sixt
@ 2010-05-03 12:48 ` Jakub Narebski
  2010-05-03 18:54 ` Will Palmer
  2010-05-08 16:43 ` What's cooking in git.git (May 2010, #01; Sun, 2) Clemens Buchacher
  3 siblings, 0 replies; 16+ messages in thread
From: Jakub Narebski @ 2010-05-03 12:48 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> * jn/gitweb-caching-prep (2010-04-24) 5 commits
>  - gitweb: Move generating page title to separate subroutine
>  - gitweb: Add custom error handler using die_error
>  - gitweb: Use nonlocal jump instead of 'exit' in die_error

I'll try to check whether it is true what I think that using nonlocal
jump instead of 'exit' improves performance of gitweb when run from
mod_perl.

>  - gitweb: href(..., -path_info => 0|1)
>  - Export more test-related variables when running external tests
> 
> * jn/gitweb-install (2010-05-01) 2 commits
>  - gitweb: Create install target for gitweb in Makefile
>  - gitweb: Improve installation instructions in gitweb/INSTALL

I think it would be good to have install target for gitweb in Makefile
before gitweb output caching series.

> * jn/gitweb-our-squelch (2010-04-30) 1 commit
>  - gitweb: Silence 'Variable VAR may be unavailable' warnings

What about syntax hightlighting series?

     gitweb: Refactor syntax highlighting support
     gitweb: Syntax highlighting support

-- 
Jakub Narebski
Poland
ShadeHawk on #git

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: What's cooking in git.git (May 2010, #01; Sun, 2)
  2010-05-02 16:12 What's cooking in git.git (May 2010, #01; Sun, 2) Junio C Hamano
  2010-05-02 20:01 ` Johannes Sixt
  2010-05-03 12:48 ` What's cooking in git.git (May 2010, #01; Sun, 2) Jakub Narebski
@ 2010-05-03 18:54 ` Will Palmer
  2010-05-04  0:25   ` jn/shortlog (Re: What's cooking in git.git (May 2010, #01; Sun, 2)) Jonathan Nieder
  2010-05-08 16:43 ` What's cooking in git.git (May 2010, #01; Sun, 2) Clemens Buchacher
  3 siblings, 1 reply; 16+ messages in thread
From: Will Palmer @ 2010-05-03 18:54 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sun, 2010-05-02 at 09:12 -0700, Junio C Hamano wrote:
> This seems to cause intermittent test failure for me especially when run
> under "make -j4".
> 
> * wp/pretty-enhancement (2010-04-30) 5 commits
>  - pretty: add aliases for pretty formats
>  - pretty: add infrastructure to allow format aliases
>  - pretty: make it easier to add new formats
>  - pretty: make %H/%h/etc respect --abbrev[-commit]
>  - pretty: add conditional %C?colorname placeholders

Does it still happen with the latest (3-commit) series? I suspect the
most-likely to cause test failures would be the --abbrev[-commit]
changes, though I suppose "intermittent" could point to a memory
problem, which is more likely to be from "make it easier to add new
formats" or "add infrastructure..."

Haven't been able to reproduce here (just running make -m4 in a
while-loop all night) Any specific tests failing?

-- 
-- Will

^ permalink raw reply	[flat|nested] 16+ messages in thread

* jn/shortlog (Re: What's cooking in git.git (May 2010, #01; Sun, 2))
  2010-05-03 18:54 ` Will Palmer
@ 2010-05-04  0:25   ` Jonathan Nieder
  2010-05-04  1:56     ` jn/shortlog Jonathan Nieder
  0 siblings, 1 reply; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  0:25 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Hi,

Will Palmer wrote:
> Junio C Hamano wrote:

>> * jn/shortlog (2010-04-26) 4 commits
>>  . pretty: Respect --abbrev option
>>  . shortlog: Document and test --format option
>>  . t4201 (shortlog): Test output format with multiple authors
>>  . t4201 (shortlog): guard setup with test_expect_success
>> 
>> This seems to cause intermittent test failure for me especially when run
>> under "make -j4".
>> 
>> * wp/pretty-enhancement (2010-04-30) 5 commits
[...]
> Does it still happen with the latest (3-commit) series?

I think it was the shortlog tests series[1].

> Haven't been able to reproduce here (just running make -m4 in a
> while-loop all night) Any specific tests failing?

In t4201-shortlog.sh:

--- expect.template     2010-05-04 00:17:41.609754167 +0000
+++ log.predictable     2010-05-04 00:17:41.613754428 +0000
@@ -1,10 +0,0 @@
-A U Thor (5):
-      SUBJECT
-      SUBJECT
-      SUBJECT
-      SUBJECT
-      SUBJECT
-
-Someone else (1):
-      SUBJECT
-

* FAIL 2: default output format

		git shortlog >log &&
		fuzz log >log.predictable &&
		test_cmp expect.template log.predictable

--- expect      2010-05-04 00:17:41.625754445 +0000
+++ log.predictable     2010-05-04 00:17:41.629754567 +0000
@@ -1,10 +0,0 @@
-A U Thor (5):
-      OBJECT_NAME
-      OBJECT_NAME
-      OBJECT_NAME
-      OBJECT_NAME
-      OBJECT_NAME
-
-Someone else (1):
-      OBJECT_NAME
-

* FAIL 3: pretty format

	sed s/SUBJECT/OBJID/ expect.template >expect &&
	git shortlog --format="%h" --abbrev=5 >log &&
	fuzz log >log.predictable &&
	test_cmp expect log.predictable

--- expect      2010-05-04 00:17:41.637754532 +0000
+++ log.predictable     2010-05-04 00:17:41.645754776 +0000
@@ -1,10 +0,0 @@
-A U Thor (5):
-      OBJID
-      OBJID
-      OBJID
-      OBJID
-      OBJID
-
-Someone else (1):
-      OBJID
-
* FAIL 4: --abbrev

		sed s/SUBJECT/OBJID/ expect.template >expect &&
		git shortlog --format="%h" --abbrev=5 >log &&
		fuzz log >log.predictable &&
		test_cmp expect log.predictable

--- expect      2010-05-04 00:17:41.657754653 +0000
+++ log.predictable     2010-05-04 00:17:41.661754495 +0000
@@ -1,10 +0,0 @@
-A U Thor (5):
-      two lines
-      two lines
-      two lines
-      two lines
-      two lines
-
-Someone else (1):
-      two lines
-

* FAIL 5: output from user-defined format is re-wrapped
        
		sed "s/SUBJECT/two lines/" expect.template >expect &&
		git shortlog --format="two%nlines" >log &&
		fuzz log >log.predictable &&
		test_cmp expect log.predictable

Jonathan

[1] http://thread.gmane.org/gmane.comp.version-control.git/145769/focus=145801

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: jn/shortlog
  2010-05-04  0:25   ` jn/shortlog (Re: What's cooking in git.git (May 2010, #01; Sun, 2)) Jonathan Nieder
@ 2010-05-04  1:56     ` Jonathan Nieder
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
  0 siblings, 1 reply; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  1:56 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Jonathan Nieder wrote:
> Will Palmer wrote:

>> Haven't been able to reproduce here (just running make -m4 in a
>> while-loop all night) Any specific tests failing?
>
> In t4201-shortlog.sh:
> 
> --- expect.template     2010-05-04 00:17:41.609754167 +0000
> +++ log.predictable     2010-05-04 00:17:41.613754428 +0000
> @@ -1,10 +0,0 @@
[etc]

So apparently shortlog does not default to HEAD when stdin is not a
tty.

Possible fixes:

 - document the current unfriendly behavior
 - default to HEAD when input is empty

Jonathan

-- 8< --
Subject: t4200 (rerere): guard setup with test_expect_success

Ensure that GIT_SKIP_TESTS='t4200.*' actually suppresses all of t4200.

Also quote some stray dollar signs and test the result from some
git config invocations.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 t/t4200-rerere.sh |  189 ++++++++++++++++++++++++++++++-----------------------
 1 files changed, 106 insertions(+), 83 deletions(-)

diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh
index 70856d0..d9b87c9 100755
--- a/t/t4200-rerere.sh
+++ b/t/t4200-rerere.sh
@@ -56,23 +56,27 @@ test_expect_success 'conflicting merge' '
 	git reset --hard &&
 	mkdir .git/rr-cache &&
 	git config --unset rerere.enabled &&
-	test_must_fail git merge first
+	test_must_fail git merge first &&
+	sha1=$(perl -pe "s/	.*//" .git/MERGE_RR) &&
+	rr=.git/rr-cache/$sha1
 '
 
-sha1=$(perl -pe 's/	.*//' .git/MERGE_RR)
-rr=.git/rr-cache/$sha1
-test_expect_success 'recorded preimage' "grep ^=======$ $rr/preimage"
+test_expect_success 'recorded preimage' '
+	grep "^=======\$" "$rr/preimage"
+'
 
 test_expect_success 'rerere.enabled works, too' '
 	rm -rf .git/rr-cache &&
 	git config rerere.enabled true &&
 	git reset --hard &&
 	test_must_fail git merge first &&
-	grep ^=======$ $rr/preimage
+	grep "^=======\$" "$rr/preimage"
 '
 
-test_expect_success 'no postimage or thisimage yet' \
-	"test ! -f $rr/postimage -a ! -f $rr/thisimage"
+test_expect_success 'no postimage or thisimage yet' '
+	! test -f "$rr/postimage" &&
+	! test -f "$rr/thisimage"
+'
 
 test_expect_success 'preimage has right number of lines' '
 
@@ -81,56 +85,60 @@ test_expect_success 'preimage has right number of lines' '
 
 '
 
-git show first:a1 > a1
-
-cat > expect << EOF
---- a/a1
-+++ b/a1
-@@ -1,4 +1,4 @@
--Some Title
-+Some title
- ==========
- Whether 'tis nobler in the mind to suffer
- The slings and arrows of outrageous fortune,
-@@ -8,21 +8,11 @@
- The heart-ache and the thousand natural shocks
- That flesh is heir to, 'tis a consummation
- Devoutly to be wish'd.
--<<<<<<<
--Some Title
--==========
--To die! To sleep;
--=======
- Some title
- ==========
- To die, to sleep;
-->>>>>>>
- To sleep: perchance to dream: ay, there's the rub;
- For in that sleep of death what dreams may come
- When we have shuffled off this mortal coil,
- Must give us pause: there's the respect
- That makes calamity of so long life;
--<<<<<<<
--=======
--* END *
-->>>>>>>
-EOF
-git rerere diff > out
-
-test_expect_success 'rerere diff' 'test_cmp expect out'
-
-cat > expect << EOF
-a1
-EOF
-
-git rerere status > out
-
-test_expect_success 'rerere status' 'test_cmp expect out'
+test_expect_success 'rerere diff' "
+	git show first:a1 >a1 &&
+
+	cat >expect <<-\EOF
+	--- a/a1
+	+++ b/a1
+	@@ -1,4 +1,4 @@
+	-Some Title
+	+Some title
+	 ==========
+	 Whether 'tis nobler in the mind to suffer
+	 The slings and arrows of outrageous fortune,
+	@@ -8,21 +8,11 @@
+	 The heart-ache and the thousand natural shocks
+	 That flesh is heir to, 'tis a consummation
+	 Devoutly to be wish'd.
+	-<<<<<<<
+	-Some Title
+	-==========
+	-To die! To sleep;
+	-=======
+	 Some title
+	 ==========
+	 To die, to sleep;
+	->>>>>>>
+	 To sleep: perchance to dream: ay, there's the rub;
+	 For in that sleep of death what dreams may come
+	 When we have shuffled off this mortal coil,
+	 Must give us pause: there's the respect
+	 That makes calamity of so long life;
+	-<<<<<<<
+	-=======
+	-* END *
+	->>>>>>>
+	EOF
+	git rerere diff >out &&
+	test_cmp expect out
+"
+
+test_expect_success 'rerere status' '
+	cat >expect <<-\EOF &&
+	a1
+	EOF
+
+	git rerere status >out &&
+	test_cmp expect out
+'
 
 test_expect_success 'commit succeeds' \
 	"git commit -q -a -m 'prefer first over second'"
 
-test_expect_success 'recorded postimage' "test -f $rr/postimage"
+test_expect_success 'recorded postimage' '
+	test -f "$rr/postimage"
+'
 
 test_expect_success 'another conflicting merge' '
 	git checkout -b third master &&
@@ -139,47 +147,62 @@ test_expect_success 'another conflicting merge' '
 	test_must_fail git pull . first
 '
 
-git show first:a1 | sed 's/To die: t/To die! T/' > expect
-test_expect_success 'rerere kicked in' "! grep ^=======$ a1"
+test_expect_success 'rerere kicked in' '
+	! grep "^=======\$" a1
+'
 
-test_expect_success 'rerere prefers first change' 'test_cmp a1 expect'
+test_expect_success 'rerere prefers first change' '
+	git show first:a1 | sed "s/To die: t/To die! T/" >expect &&
+	test_cmp a1 expect
+'
 
-rm $rr/postimage
-echo "$sha1	a1" | perl -pe 'y/\012/\000/' > .git/MERGE_RR
+test_expect_success 'cleanup' '
+	rm $rr/postimage &&
+	echo "$sha1	a1" |
+		perl -pe "y/\012/\000/" >.git/MERGE_RR
+'
 
 test_expect_success 'rerere clear' 'git rerere clear'
 
 test_expect_success 'clear removed the directory' "test ! -d $rr"
 
-mkdir $rr
-echo Hello > $rr/preimage
-echo World > $rr/postimage
-
-sha2=4000000000000000000000000000000000000000
-rr2=.git/rr-cache/$sha2
-mkdir $rr2
-echo Hello > $rr2/preimage
-
-almost_15_days_ago=$((60-15*86400))
-just_over_15_days_ago=$((-1-15*86400))
-almost_60_days_ago=$((60-60*86400))
-just_over_60_days_ago=$((-1-60*86400))
+test_expect_success 'gc setup' '
+	mkdir "$rr" &&
+	echo Hello >"$rr/preimage" &&
+	echo World >"$rr/postimage" &&
 
-test-chmtime =$almost_60_days_ago $rr/preimage
-test-chmtime =$almost_15_days_ago $rr2/preimage
+	sha2=4000000000000000000000000000000000000000 &&
+	rr2=.git/rr-cache/$sha2 &&
+	mkdir "$rr2" &&
+	echo Hello >"$rr2/preimage" &&
 
-test_expect_success 'garbage collection (part1)' 'git rerere gc'
+	almost_15_days_ago=$((60-15*86400)) &&
+	just_over_15_days_ago=$((-1-15*86400)) &&
+	almost_60_days_ago=$((60-60*86400)) &&
+	just_over_60_days_ago=$((-1-60*86400))
+'
 
-test_expect_success 'young records still live' \
-	"test -f $rr/preimage && test -f $rr2/preimage"
+test_expect_success 'garbage collection (part1)' '
+	test-chmtime "=$almost_60_days_ago" "$rr/preimage" &&
+	test-chmtime "=$almost_15_days_ago" "$rr2/preimage" &&
+	git rerere gc
+'
 
-test-chmtime =$just_over_60_days_ago $rr/preimage
-test-chmtime =$just_over_15_days_ago $rr2/preimage
+test_expect_success 'young records still live' '
+	test -f "$rr/preimage" &&
+	test -f "$rr2/preimage"
+'
 
-test_expect_success 'garbage collection (part2)' 'git rerere gc'
+test_expect_success 'garbage collection (part2)' '
+	test-chmtime "=$just_over_60_days_ago" "$rr/preimage" &&
+	test-chmtime "=$just_over_15_days_ago" "$rr2/preimage" &&
+	git rerere gc
+'
 
-test_expect_success 'old records rest in peace' \
-	"test ! -f $rr/preimage && test ! -f $rr2/preimage"
+test_expect_success 'old records rest in peace' '
+	! test -f "$rr/preimage" &&
+	! test -f "$rr2/preimage"
+'
 
 test_expect_success 'file2 added differently in two branches' '
 	git reset --hard &&
@@ -214,7 +237,7 @@ test_expect_success 'resolution was recorded properly' '
 '
 
 test_expect_success 'rerere.autoupdate' '
-	git config rerere.autoupdate true
+	git config rerere.autoupdate true &&
 	git reset --hard &&
 	git checkout version2 &&
 	test_must_fail git merge fifth &&
@@ -230,7 +253,7 @@ test_expect_success 'merge --rerere-autoupdate' '
 '
 
 test_expect_success 'merge --no-rerere-autoupdate' '
-	git config rerere.autoupdate true
+	git config rerere.autoupdate true &&
 	git reset --hard &&
 	git checkout version2 &&
 	test_must_fail git merge --no-rerere-autoupdate fifth &&
-- 
1.7.1.5.g8d03f

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 0/5] jn/shortlog
  2010-05-04  1:56     ` jn/shortlog Jonathan Nieder
@ 2010-05-04  2:52       ` Jonathan Nieder
  2010-05-04  2:57         ` [PATCH 1/5] Documentation/shortlog: scripted users should not rely on implicit HEAD Jonathan Nieder
                           ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  2:52 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Jonathan Nieder wrote:

> apparently shortlog does not default to HEAD when stdin is not a
> tty.
> 
> Possible fixes:
> 
>  - document the current unfriendly behavior
>  - default to HEAD when input is empty

Here’s the uncontroversial half.

Patch 1 is new: it explains why scripts that mean HEAD need to explicitly
say so.  The remaining patches are just like before, except tests pass a
HEAD arg now.  Sorry about the breakage, and thanks for catching it.

Jonathan Nieder (4):
  Documentation/shortlog: scripted users should not rely on implicit
    HEAD
  t4201 (shortlog): guard setup with test_expect_success
  t4201 (shortlog): Test output format with multiple authors
  shortlog: Document and test --format option

Will Palmer (1):
  pretty: Respect --abbrev option

 Documentation/git-shortlog.txt |   15 +++++-
 builtin/shortlog.c             |    3 +-
 pretty.c                       |    7 ++-
 shortlog.h                     |    1 +
 t/t4201-shortlog.sh            |  116 +++++++++++++++++++++++++++++++--------
 t/t6006-rev-list-format.sh     |   19 +++++++
 6 files changed, 132 insertions(+), 29 deletions(-)

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH 1/5] Documentation/shortlog: scripted users should not rely on implicit HEAD
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
@ 2010-05-04  2:57         ` Jonathan Nieder
  2010-05-04  2:57         ` [PATCH 2/5] t4201 (shortlog): guard setup with test_expect_success Jonathan Nieder
                           ` (3 subsequent siblings)
  4 siblings, 0 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  2:57 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

When passed no revision arguments, ‘git shortlog’ reads a log from
stdin if and only if stdin is not a tty.  So scripts that need to
function identically when standard input is a terminal (as when run
interactively) and not (as when run through a cron job) should either
supply a log themselves or specify the desired revisions explicitly.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 Documentation/git-shortlog.txt |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index dfd4d0c..f11ea90 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt
@@ -9,7 +9,7 @@ SYNOPSIS
 --------
 [verse]
 git log --pretty=short | 'git shortlog' [-h] [-n] [-s] [-e] [-w]
-'git shortlog' [-n|--numbered] [-s|--summary] [-e|--email] [-w[<width>[,<indent1>[,<indent2>]]]] [<committish>...]
+'git shortlog' [-n|--numbered] [-s|--summary] [-e|--email] [-w[<width>[,<indent1>[,<indent2>]]]] <commit>...
 
 DESCRIPTION
 -----------
@@ -19,6 +19,11 @@ the first line of the commit message will be shown.
 
 Additionally, "[PATCH]" will be stripped from the commit description.
 
+If no revisions are passed on the command line and either standard input
+is not a terminal or there is no current branch, 'git shortlog' will
+output a summary of the log read from standard input, without
+reference to the current repository.
+
 OPTIONS
 -------
 
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/5] t4201 (shortlog): guard setup with test_expect_success
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
  2010-05-04  2:57         ` [PATCH 1/5] Documentation/shortlog: scripted users should not rely on implicit HEAD Jonathan Nieder
@ 2010-05-04  2:57         ` Jonathan Nieder
  2010-05-04  2:58         ` [PATCH 3/5] t4201 (shortlog): Test output format with multiple authors Jonathan Nieder
                           ` (2 subsequent siblings)
  4 siblings, 0 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  2:57 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Follow the current prevailing style.  This also has the benefit of
capturing any stray output and noticing if any of the setup commands
start failing.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
As before.

 t/t4201-shortlog.sh |   68 +++++++++++++++++++++++++++++---------------------
 1 files changed, 39 insertions(+), 29 deletions(-)

diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index a01e55b..438a826 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -8,30 +8,38 @@ test_description='git shortlog
 
 . ./test-lib.sh
 
-echo 1 > a1
-git add a1
-tree=$(git write-tree)
-commit=$( (echo "Test"; echo) | git commit-tree $tree )
-git update-ref HEAD $commit
-
-echo 2 > a1
-git commit --quiet -m "This is a very, very long first line for the commit message to see if it is wrapped correctly" a1
-
-# test if the wrapping is still valid when replacing all i's by treble clefs.
-echo 3 > a1
-git commit --quiet -m "$(echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\360\235\204\236')" a1
-
-# now fsck up the utf8
-git config i18n.commitencoding non-utf-8
-echo 4 > a1
-git commit --quiet -m "$(echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\370\235\204\236')" a1
-
-echo 5 > a1
-git commit --quiet -m "a								12	34	56	78" a1
-
-git shortlog -w HEAD > out
+test_expect_success 'setup' '
+	echo 1 >a1 &&
+	git add a1 &&
+	tree=$(git write-tree) &&
+	commit=$(printf "%s\n" "Test" "" | git commit-tree "$tree") &&
+	git update-ref HEAD "$commit" &&
+
+	echo 2 >a1 &&
+	git commit --quiet -m "This is a very, very long first line for the commit message to see if it is wrapped correctly" a1 &&
+
+	# test if the wrapping is still valid
+	# when replacing all is by treble clefs.
+	echo 3 >a1 &&
+	git commit --quiet -m "$(
+		echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" |
+		sed "s/i/1234/g" |
+		tr 1234 "\360\235\204\236")" a1 &&
+
+	# now fsck up the utf8
+	git config i18n.commitencoding non-utf-8 &&
+	echo 4 >a1 &&
+	git commit --quiet -m "$(
+		echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" |
+		sed "s/i/1234/g" |
+		tr 1234 "\370\235\204\236")" a1 &&
+
+	echo 5 >a1 &&
+	git commit --quiet -m "a								12	34	56	78" a1
+'
 
-cat > expect << EOF
+test_expect_success 'shortlog wrapping' '
+	cat >expect <<\EOF &&
 A U Thor (5):
       Test
       This is a very, very long first line for the commit message to see if
@@ -44,13 +52,15 @@ A U Thor (5):
          56	78
 
 EOF
+	git shortlog -w HEAD >out &&
+	test_cmp expect out
+'
 
-test_expect_success 'shortlog wrapping' 'test_cmp expect out'
-
-git log HEAD > log
-GIT_DIR=non-existing git shortlog -w < log > out
-
-test_expect_success 'shortlog from non-git directory' 'test_cmp expect out'
+test_expect_success 'shortlog from non-git directory' '
+	git log HEAD >log &&
+	GIT_DIR=non-existing git shortlog -w <log >out &&
+	test_cmp expect out
+'
 
 iconvfromutf8toiso88591() {
 	printf "%s" "$*" | iconv -f UTF-8 -t ISO8859-1
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 3/5] t4201 (shortlog): Test output format with multiple authors
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
  2010-05-04  2:57         ` [PATCH 1/5] Documentation/shortlog: scripted users should not rely on implicit HEAD Jonathan Nieder
  2010-05-04  2:57         ` [PATCH 2/5] t4201 (shortlog): guard setup with test_expect_success Jonathan Nieder
@ 2010-05-04  2:58         ` Jonathan Nieder
  2010-05-04  2:59         ` [PATCH 4/5] shortlog: Document and test --format option Jonathan Nieder
  2010-05-04  3:18         ` [PATCH 5/5] pretty: Respect --abbrev option Jonathan Nieder
  4 siblings, 0 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  2:58 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
As before.

 t/t4201-shortlog.sh |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 438a826..6bfd0c0 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -36,6 +36,10 @@ test_expect_success 'setup' '
 
 	echo 5 >a1 &&
 	git commit --quiet -m "a								12	34	56	78" a1
+
+	echo 6 >a1 &&
+	git commit --quiet -m "Commit by someone else" \
+		--author="Someone else <not!me>" a1
 '
 
 test_expect_success 'shortlog wrapping' '
@@ -51,6 +55,9 @@ A U Thor (5):
       a								12	34
          56	78
 
+Someone else (1):
+      Commit by someone else
+
 EOF
 	git shortlog -w HEAD >out &&
 	test_cmp expect out
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 4/5] shortlog: Document and test --format option
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
                           ` (2 preceding siblings ...)
  2010-05-04  2:58         ` [PATCH 3/5] t4201 (shortlog): Test output format with multiple authors Jonathan Nieder
@ 2010-05-04  2:59         ` Jonathan Nieder
  2010-05-04  3:18         ` [PATCH 5/5] pretty: Respect --abbrev option Jonathan Nieder
  4 siblings, 0 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  2:59 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Do not document the --pretty synonym, since it takes too long to
explain the name to people.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 - Pass HEAD to shortlog
 - Use {asterisk} helper for manual

 Documentation/git-shortlog.txt |    8 ++++++
 t/t4201-shortlog.sh            |   53 +++++++++++++++++++++++++++++++++++++++-
 2 files changed, 60 insertions(+), 1 deletions(-)

diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index f11ea90..a820fcb 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt
@@ -44,6 +44,14 @@ OPTIONS
 --email::
 	Show the email address of each author.
 
+--format[='<format>']::
+	Instead of the commit subject, use some other information to
+	describe each commit.  '<format>' can be any string accepted
+	by the `--format` option of 'git log', such as '{asterisk} [%h] %s'.
+	(See the "PRETTY FORMATS" section of linkgit:git-log[1].)
+
+	Each pretty-printed commit will be rewrapped before it is shown.
+
 -w[<width>[,<indent1>[,<indent2>]]]::
 	Linewrap the output by wrapping each line at `width`.  The first
 	line of each entry is indented by `indent1` spaces, and the second
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 6bfd0c0..13fdeb2 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -39,7 +39,58 @@ test_expect_success 'setup' '
 
 	echo 6 >a1 &&
 	git commit --quiet -m "Commit by someone else" \
-		--author="Someone else <not!me>" a1
+		--author="Someone else <not!me>" a1 &&
+
+	cat >expect.template <<-\EOF
+	A U Thor (5):
+	      SUBJECT
+	      SUBJECT
+	      SUBJECT
+	      SUBJECT
+	      SUBJECT
+
+	Someone else (1):
+	      SUBJECT
+
+	EOF
+'
+
+fuzz() {
+	file=$1 &&
+	sed "
+			s/$_x40/OBJECT_NAME/g
+			s/$_x05/OBJID/g
+			s/^ \{6\}[CTa].*/      SUBJECT/g
+			s/^ \{8\}[^ ].*/        CONTINUATION/g
+		" <"$file" >"$file.fuzzy" &&
+	sed "/CONTINUATION/ d" <"$file.fuzzy"
+}
+
+test_expect_success 'default output format' '
+	git shortlog HEAD >log &&
+	fuzz log >log.predictable &&
+	test_cmp expect.template log.predictable
+'
+
+test_expect_success 'pretty format' '
+	sed s/SUBJECT/OBJECT_NAME/ expect.template >expect &&
+	git shortlog --format="%H" HEAD >log &&
+	fuzz log >log.predictable &&
+	test_cmp expect log.predictable
+'
+
+test_expect_failure '--abbrev' '
+	sed s/SUBJECT/OBJID/ expect.template >expect &&
+	git shortlog --format="%h" --abbrev=5 HEAD >log &&
+	fuzz log >log.predictable &&
+	test_cmp expect log.predictable
+'
+
+test_expect_success 'output from user-defined format is re-wrapped' '
+	sed "s/SUBJECT/two lines/" expect.template >expect &&
+	git shortlog --format="two%nlines" HEAD >log &&
+	fuzz log >log.predictable &&
+	test_cmp expect log.predictable
 '
 
 test_expect_success 'shortlog wrapping' '
-- 
1.6.5

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 5/5] pretty: Respect --abbrev option
  2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
                           ` (3 preceding siblings ...)
  2010-05-04  2:59         ` [PATCH 4/5] shortlog: Document and test --format option Jonathan Nieder
@ 2010-05-04  3:18         ` Jonathan Nieder
  2010-05-04  8:34           ` Jonathan Nieder
  4 siblings, 1 reply; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  3:18 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Prior to this, the output of git log -1 --format=%h was always 7
characters long, without regard to whether --abbrev had been passed.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
incorporating some tests by Will Palmer:
http://thread.gmane.org/gmane.comp.version-control.git/146054/focus=146057

 builtin/shortlog.c         |    3 ++-
 pretty.c                   |    7 ++++---
 shortlog.h                 |    1 +
 t/t4201-shortlog.sh        |    2 +-
 t/t6006-rev-list-format.sh |   31 +++++++++++++++++++++++++++++++
 5 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 06320f5..5089502 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -162,7 +162,7 @@ void shortlog_add_commit(struct shortlog *log, struct commit *commit)
 		    sha1_to_hex(commit->object.sha1));
 	if (log->user_format) {
 		struct pretty_print_context ctx = {0};
-		ctx.abbrev = DEFAULT_ABBREV;
+		ctx.abbrev = log->abbrev;
 		ctx.subject = "";
 		ctx.after_subject = "";
 		ctx.date_mode = DATE_NORMAL;
@@ -290,6 +290,7 @@ parse_done:
 	}
 
 	log.user_format = rev.commit_format == CMIT_FMT_USERFORMAT;
+	log.abbrev = rev.abbrev;
 
 	/* assume HEAD if from a tty */
 	if (!nongit && !rev.pending.nr && isatty(0))
diff --git a/pretty.c b/pretty.c
index 7cb3a2a..1430616 100644
--- a/pretty.c
+++ b/pretty.c
@@ -716,7 +716,7 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
 		if (add_again(sb, &c->abbrev_commit_hash))
 			return 1;
 		strbuf_addstr(sb, find_unique_abbrev(commit->object.sha1,
-		                                     DEFAULT_ABBREV));
+		                                     c->pretty_ctx->abbrev));
 		c->abbrev_commit_hash.len = sb->len - c->abbrev_commit_hash.off;
 		return 1;
 	case 'T':		/* tree hash */
@@ -726,7 +726,7 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
 		if (add_again(sb, &c->abbrev_tree_hash))
 			return 1;
 		strbuf_addstr(sb, find_unique_abbrev(commit->tree->object.sha1,
-		                                     DEFAULT_ABBREV));
+		                                     c->pretty_ctx->abbrev));
 		c->abbrev_tree_hash.len = sb->len - c->abbrev_tree_hash.off;
 		return 1;
 	case 'P':		/* parent hashes */
@@ -743,7 +743,8 @@ static size_t format_commit_one(struct strbuf *sb, const char *placeholder,
 			if (p != commit->parents)
 				strbuf_addch(sb, ' ');
 			strbuf_addstr(sb, find_unique_abbrev(
-					p->item->object.sha1, DEFAULT_ABBREV));
+					p->item->object.sha1,
+					c->pretty_ctx->abbrev));
 		}
 		c->abbrev_parent_hashes.len = sb->len -
 		                              c->abbrev_parent_hashes.off;
diff --git a/shortlog.h b/shortlog.h
index bc02cc2..de4f86f 100644
--- a/shortlog.h
+++ b/shortlog.h
@@ -12,6 +12,7 @@ struct shortlog {
 	int in1;
 	int in2;
 	int user_format;
+	int abbrev;
 
 	char *common_repo_prefix;
 	int email;
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 899ddbe..c49ca98 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -79,7 +79,7 @@ test_expect_success 'pretty format' '
 	test_cmp expect log.predictable
 '
 
-test_expect_failure '--abbrev' '
+test_expect_success '--abbrev' '
 	sed s/SUBJECT/OBJID/ expect.template >expect &&
 	git shortlog --format="%h" --abbrev=5 >log &&
 	fuzz log >log.predictable &&
diff --git a/t/t6006-rev-list-format.sh b/t/t6006-rev-list-format.sh
index a49b7c5..42a77ff 100755
--- a/t/t6006-rev-list-format.sh
+++ b/t/t6006-rev-list-format.sh
@@ -191,6 +191,31 @@ test_expect_success 'add LF before non-empty (2)' '
 	grep "^$" actual
 '
 
+test_expect_success '--abbrev' '
+	echo SHORT SHORT SHORT >expect2 &&
+	echo LONG LONG LONG >expect3 &&
+	git log -1 --format="%h %h %h" HEAD >actual1 &&
+	git log -1 --abbrev=5 --format="%h %h %h" HEAD >actual2 &&
+	git log -1 --abbrev=5 --format="%H %H %H" HEAD >actual3 &&
+	sed -e "s/$_x40/LONG/g" -e "s/$_x05/SHORT/g" <actual2 >fuzzy2 &&
+	sed -e "s/$_x40/LONG/g" -e "s/$_x05/SHORT/g" <actual3 >fuzzy3 &&
+	test_cmp expect2 fuzzy2 &&
+	test_cmp expect3 fuzzy3 &&
+	! test_cmp actual1 actual2
+'
+
+test_expect_success '%H is not affected by --abbrev-commit' '
+	git log -1 --format=%H --abbrev-commit --abbrev=20 HEAD >actual &&
+	len=$(wc -c <actual) &&
+	test $len = 40
+'
+
+test_expect_success '%h is not affected by --abbrev-commit' '
+	git log -1 --format=%h --abbrev-commit --abbrev=20 HEAD >actual &&
+	len=$(wc -c <actual) &&
+	test $len = 20
+'
+
 test_expect_success '"%h %gD: %gs" is same as git-reflog' '
 	git reflog >expect &&
 	git log -g --format="%h %gD: %gs" >actual &&
@@ -203,6 +228,12 @@ test_expect_success '"%h %gD: %gs" is same as git-reflog (with date)' '
 	test_cmp expect actual
 '
 
+test_expect_success '"%h %gD: %gs" is same as git-reflog (with --abbrev)' '
+	git reflog --abbrev=13 --date=raw >expect &&
+	git log -g --abbrev=13 --format="%h %gD: %gs" --date=raw >actual &&
+	test_cmp expect actual
+'
+
 test_expect_success '%gd shortens ref name' '
 	echo "master@{0}" >expect.gd-short &&
 	git log -g -1 --format=%gd refs/heads/master >actual.gd-short &&
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH 5/5] pretty: Respect --abbrev option
  2010-05-04  3:18         ` [PATCH 5/5] pretty: Respect --abbrev option Jonathan Nieder
@ 2010-05-04  8:34           ` Jonathan Nieder
  0 siblings, 0 replies; 16+ messages in thread
From: Jonathan Nieder @ 2010-05-04  8:34 UTC (permalink / raw)
  To: Will Palmer; +Cc: Junio C Hamano, git

Jonathan Nieder wrote:

> Subject: [PATCH 5/5] pretty: Respect --abbrev option
[...]
> Signed-off-by: Will Palmer <wmpalmer@gmail.com>
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>

This patch was by Will Palmer <wmpalmer@gmail.com> (except two
of the tests).  Since I don’t use ‘git send-email’, I keep
forgetting to include the From: pseudo-header.

Sorry for the trouble,
Jonathan

diff --git a/pretty.c b/pretty.c
index 1430616..e5dea91 100644
--- a/pretty.c
+++ b/pretty.c
@@ -908,6 +908,7 @@ static void pp_header(enum cmit_fmt fmt,
 		      const char *encoding,
 		      const struct commit *commit,
 		      const char **msg_p,
+		      const char **author_p,
 		      struct strbuf *sb)
 {
 	int parents_shown = 0;
@@ -954,6 +955,8 @@ static void pp_header(enum cmit_fmt fmt,
 		 * FULLER shows both authors and dates.
 		 */
 		if (!memcmp(line, "author ", 7)) {
+			if (author_p)
+				*author_p = line + 7;
 			strbuf_grow(sb, linelen + 80);
 			pp_user_info("Author", fmt, sb, line + 7, dmode, encoding);
 		}
@@ -1004,6 +1007,22 @@ void pp_title_line(enum cmit_fmt fmt,
 	strbuf_release(&title);
 }
 
+static void pp_in_body_author(struct strbuf *sb,
+			      const char *author_line)
+{
+	const char *author_end, *sender;
+
+	author_end = strchr(author_line, '>') + 1;
+	sender = git_author_info(IDENT_NO_DATE);
+	if (!strncmp(author_line, sender, author_end - author_line))
+		return;
+
+	strbuf_addstr(sb, "From: ");
+	strbuf_add(sb, author_line, author_end - author_line);
+	strbuf_addch(sb, '\n');
+	strbuf_addch(sb, '\n');
+}
+
 void pp_remainder(enum cmit_fmt fmt,
 		  const char **msg_p,
 		  struct strbuf *sb,
@@ -1057,6 +1076,7 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
 	unsigned long beginning_of_body;
 	int indent = 4;
 	const char *msg = commit->buffer;
+	const char *author = NULL;
 	char *reencoded;
 	const char *encoding;
 	int need_8bit_cte = context->need_8bit_cte;
@@ -1082,15 +1102,13 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
 		int i, ch, in_body;
 
 		for (in_body = i = 0; (ch = msg[i]); i++) {
-			if (!in_body) {
-				/* author could be non 7-bit ASCII but
-				 * the log may be so; skip over the
-				 * header part first.
-				 */
-				if (ch == '\n' && msg[i+1] == '\n')
-					in_body = 1;
-			}
-			else if (non_ascii(ch)) {
+			/*
+			 * If the author is non 7-bit ASCII but
+			 * the log is 7bit, we still need a
+			 * Content-type field, in case an in-body
+			 * From: line is required.
+			 */
+			if (non_ascii(ch)) {
 				need_8bit_cte = 1;
 				break;
 			}
@@ -1098,7 +1116,7 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
 	}
 
 	pp_header(fmt, context->abbrev, context->date_mode, encoding,
-		  commit, &msg, sb);
+		  commit, &msg, &author, sb);
 	if (fmt != CMIT_FMT_ONELINE && !context->subject) {
 		strbuf_addch(sb, '\n');
 	}
@@ -1111,6 +1129,9 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
 		pp_title_line(fmt, &msg, sb, context->subject,
 			      context->after_subject, encoding, need_8bit_cte);
 
+	if (fmt == CMIT_FMT_EMAIL)
+		pp_in_body_author(sb, author);
+
 	beginning_of_body = sb->len;
 	if (fmt != CMIT_FMT_ONELINE)
 		pp_remainder(fmt, &msg, sb, indent);
-- 

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 1/2] Have set_try_to_free_routine return the previous routine
  2010-05-02 20:01 ` Johannes Sixt
@ 2010-05-08 15:13   ` Johannes Sixt
  2010-05-08 15:18     ` [PATCH 2/2] Do not call release_pack_memory in malloc wrappers when GIT_TRACE is used Johannes Sixt
  0 siblings, 1 reply; 16+ messages in thread
From: Johannes Sixt @ 2010-05-08 15:13 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Nicolas Pitre

This effectively requires from the callers of set_try_to_free_routine to
treat the try-to-free-routines as a stack.

We will need this for the next patch where the only current caller cannot
depend on that the previously set routine was the default routine.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
On Sonntag, 2. Mai 2010, Johannes Sixt wrote:
> Am 02.05.2010 18:12, schrieb Junio C Hamano:
> > * np/malloc-threading (2010-04-08) 2 commits
> >
> > * js/async-thread (2010-03-09) 7 commits
>
> Note that np/malloc-threading does not help the potential xmalloc race
> condition in js/async-thread topic at all. :-( np/malloc-threading is only
> about a race that is internal in pack-objects.
>
> Now that you force me to think about the problem, I suggest something along
> these lines: Disable try_to_free_routine when GIT_TRACE is set, and require
> callers of set_try_to_free_routine to restore the previous routine.

Here is a 2-patch series that implements this idea. I wrote it on top of
np/malloc-threading, because it implements the infrastructure that is
necessary for this.

 builtin-pack-objects.c |    6 ++++--
 git-compat-util.h      |    3 ++-
 wrapper.c              |    6 ++++--
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index 26fc7cd..5279cd9 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -1556,6 +1556,8 @@ static void try_to_free_from_threads(size_t size)
 	read_unlock();
 }
 
+try_to_free_t old_try_to_free_routine;
+
 /*
  * The main thread waits on the condition that (at least) one of the workers
  * has stopped working (which is indicated in the .working member of
@@ -1590,12 +1592,12 @@ static void init_threaded_search(void)
 	pthread_mutex_init(&cache_mutex, NULL);
 	pthread_mutex_init(&progress_mutex, NULL);
 	pthread_cond_init(&progress_cond, NULL);
-	set_try_to_free_routine(try_to_free_from_threads);
+	old_try_to_free_routine = set_try_to_free_routine(try_to_free_from_threads);
 }
 
 static void cleanup_threaded_search(void)
 {
-	set_try_to_free_routine(NULL);
+	set_try_to_free_routine(old_try_to_free_routine);
 	pthread_cond_destroy(&progress_cond);
 	pthread_mutex_destroy(&read_mutex);
 	pthread_mutex_destroy(&cache_mutex);
diff --git a/git-compat-util.h b/git-compat-util.h
index 1c171db..828aada 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -346,7 +346,8 @@ static inline char *gitstrchrnul(const char *s, int c)
 
 extern void release_pack_memory(size_t, int);
 
-extern void set_try_to_free_routine(void (*routine)(size_t));
+typedef void (*try_to_free_t)(size_t);
+extern try_to_free_t set_try_to_free_routine(try_to_free_t);
 
 extern char *xstrdup(const char *str);
 extern void *xmalloc(size_t size);
diff --git a/wrapper.c b/wrapper.c
index 62edb57..8aa9df9 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -10,9 +10,11 @@ static void try_to_free_builtin(size_t size)
 
 static void (*try_to_free_routine)(size_t size) = try_to_free_builtin;
 
-void set_try_to_free_routine(void (*routine)(size_t))
+try_to_free_t set_try_to_free_routine(try_to_free_t routine)
 {
-	try_to_free_routine = (routine) ? routine : try_to_free_builtin;
+	try_to_free_t old = try_to_free_routine;
+	try_to_free_routine = routine;
+	return old;
 }
 
 char *xstrdup(const char *str)
-- 
1.7.1.64.ga1799.dirty

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH 2/2] Do not call release_pack_memory in malloc wrappers when GIT_TRACE is used
  2010-05-08 15:13   ` [PATCH 1/2] Have set_try_to_free_routine return the previous routine Johannes Sixt
@ 2010-05-08 15:18     ` Johannes Sixt
  0 siblings, 0 replies; 16+ messages in thread
From: Johannes Sixt @ 2010-05-08 15:18 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git, Nicolas Pitre

This avoids a potential race condition when async procedures are
implemented as threads where release_pack_memory() can be called from
different threads without locking under memory pressure.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 It is worthwhile to have this in np/malloc-threading (and in maint or
 master) even if js/async-thread is not in master, yet, because on
 Windows we already have async procedures implemented in threads.

 trace.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/trace.c b/trace.c
index 4229ae1..1e560cb 100644
--- a/trace.c
+++ b/trace.c
@@ -25,6 +25,10 @@
 #include "cache.h"
 #include "quote.h"
 
+void do_nothing(size_t unused)
+{
+}
+
 /* Get a trace file descriptor from GIT_TRACE env variable. */
 static int get_trace_fd(int *need_close)
 {
@@ -72,6 +76,7 @@ void trace_printf(const char *fmt, ...)
 	if (!fd)
 		return;
 
+	set_try_to_free_routine(do_nothing);	/* is never reset */
 	strbuf_init(&buf, 64);
 	va_start(ap, fmt);
 	len = vsnprintf(buf.buf, strbuf_avail(&buf), fmt, ap);
@@ -103,6 +108,7 @@ void trace_argv_printf(const char **argv, const char *fmt, ...)
 	if (!fd)
 		return;
 
+	set_try_to_free_routine(do_nothing);	/* is never reset */
 	strbuf_init(&buf, 64);
 	va_start(ap, fmt);
 	len = vsnprintf(buf.buf, strbuf_avail(&buf), fmt, ap);
-- 
1.7.1.64.ga1799.dirty

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: What's cooking in git.git (May 2010, #01; Sun, 2)
  2010-05-02 16:12 What's cooking in git.git (May 2010, #01; Sun, 2) Junio C Hamano
                   ` (2 preceding siblings ...)
  2010-05-03 18:54 ` Will Palmer
@ 2010-05-08 16:43 ` Clemens Buchacher
  3 siblings, 0 replies; 16+ messages in thread
From: Clemens Buchacher @ 2010-05-08 16:43 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Sun, May 02, 2010 at 09:12:12AM -0700, Junio C Hamano wrote:

> * cb/assume-unchanged-fix (2010-05-01) 2 commits
>  - Documentation: git-add does not update files marked "assume unchanged"

Please remove the second hunk from that commit, where I add "The assume
unchanged bit is unset for all paths." That is clearly wrong.

Thank you.

Clemens

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2010-05-08 16:43 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-05-02 16:12 What's cooking in git.git (May 2010, #01; Sun, 2) Junio C Hamano
2010-05-02 20:01 ` Johannes Sixt
2010-05-08 15:13   ` [PATCH 1/2] Have set_try_to_free_routine return the previous routine Johannes Sixt
2010-05-08 15:18     ` [PATCH 2/2] Do not call release_pack_memory in malloc wrappers when GIT_TRACE is used Johannes Sixt
2010-05-03 12:48 ` What's cooking in git.git (May 2010, #01; Sun, 2) Jakub Narebski
2010-05-03 18:54 ` Will Palmer
2010-05-04  0:25   ` jn/shortlog (Re: What's cooking in git.git (May 2010, #01; Sun, 2)) Jonathan Nieder
2010-05-04  1:56     ` jn/shortlog Jonathan Nieder
2010-05-04  2:52       ` [PATCH v2 0/5] jn/shortlog Jonathan Nieder
2010-05-04  2:57         ` [PATCH 1/5] Documentation/shortlog: scripted users should not rely on implicit HEAD Jonathan Nieder
2010-05-04  2:57         ` [PATCH 2/5] t4201 (shortlog): guard setup with test_expect_success Jonathan Nieder
2010-05-04  2:58         ` [PATCH 3/5] t4201 (shortlog): Test output format with multiple authors Jonathan Nieder
2010-05-04  2:59         ` [PATCH 4/5] shortlog: Document and test --format option Jonathan Nieder
2010-05-04  3:18         ` [PATCH 5/5] pretty: Respect --abbrev option Jonathan Nieder
2010-05-04  8:34           ` Jonathan Nieder
2010-05-08 16:43 ` What's cooking in git.git (May 2010, #01; Sun, 2) Clemens Buchacher

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 NNTP newsgroup(s).