* 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).