summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-04-18Merge branch 'lt/xsha1' into nextLibravatar Junio C Hamano2-1/+67
* lt/xsha1: get_sha1() shorthands for blob/tree objects Fix uninteresting tags in new revision parsing
2006-04-18get_sha1() shorthands for blob/tree objectsLibravatar Linus Torvalds1-1/+66
This is a fairly straightforward patch to allow "get_sha1()" to also have shorthands for tree and blob objects. The syntax is very simple and intuitive: you can specify a tree or a blob by simply specifying <revision>:<path>, and get_sha1() will do the SHA1 lookup from the tree for you. You can currently do it with "git ls-tree <rev> <path>" and parsing the output, but that's actually pretty awkward. With this, you can do something like git cat-file blob v1.2.4:Makefile to get the contents of "Makefile" at revision v1.2.4. Now, this isn't necessarily something you really need all that often, but the concept itself is actually pretty powerful. We could, for example, allow things like git diff v0.99.6:git-commit-script..v1.3.0:git-commit.sh to see the difference between two arbitrary files in two arbitrary revisions. To do that, the only thing we'd have to do is to make git-diff-tree accept two blobs to diff, in addition to the two trees it now expects. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Fix uninteresting tags in new revision parsingLibravatar Linus Torvalds1-0/+1
When I unified the revision argument parsing, I introduced a simple bug wrt tags that had been marked uninteresting. When it was preparing for the revision walk, it would mark all the parent commits of an uninteresting tag correctly uninteresting, but it would forget about the commit itself. This means that when I just did my 2.6.17-rc2 release, and my scripts generated the log for "v2.6.17-rc1..v2.6.17-rc2", everything was fine, except the commit pointed to by 2.6.17-rc1 (which shouldn't have been there) was included. Even though it should obviously have been marked as being uninteresting. Not a huge deal, and the fix is trivial. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Merge branch 'jc/fmt-patch' into nextLibravatar Junio C Hamano4-13/+89
* jc/fmt-patch: Tentative built-in format-patch.
2006-04-18Tentative built-in format-patch.Libravatar Junio C Hamano4-13/+89
This only does --stdout right now. To write into separate files with pretty-printed filenames like the real thing does, it needs a bit mroe work. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Merge branch 'sh/daemon' into nextLibravatar Junio C Hamano1-1/+1
* sh/daemon: socksetup: don't return on set_reuse_addr() error
2006-04-18socksetup: don't return on set_reuse_addr() errorLibravatar Serge E. Hallyn1-1/+1
The set_reuse_addr() error case was the only error case in socklist() where we returned rather than continued. Not sure why. Either we must free the socklist, or continue. This patch continues on error. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Merge branch 'jc/pager-cat'Libravatar Junio C Hamano1-1/+1
* jc/pager-cat: Do not fork PAGER=cat
2006-04-18Merge branch 'lt/logopt'Libravatar Junio C Hamano14-437/+472
* lt/logopt: Fix "git log --stat": make sure to set recursive with --stat. combine-diff: show diffstat with the first parent. git.c: LOGSIZE is unused after log printing cleanup. Log message printout cleanups (#3): fix --pretty=oneline Log message printout cleanups (#2) Log message printout cleanups rev-list --header: output format fix Fixes for option parsing log/whatchanged/show - log formatting cleanup. Simplify common default options setup for built-in log family. Tentative built-in "git show" Built-in git-whatchanged. rev-list option parser fix. Split init_revisions() out of setup_revisions() Fix up rev-list option parsing. Fix up default abbrev in setup_revisions() argument parser. Common option parsing for "git log --diff" and friends
2006-04-18Merge branch 'master' into nextLibravatar Junio C Hamano6-4/+109
* master: GIT 1.3.0 Add git-annotate(1) and git-blame(1) diff --stat: make sure to set recursive. git-svnimport symlink support
2006-04-18Merge branch 'lt/logopt' into nextLibravatar Junio C Hamano2-2/+9
* lt/logopt: Fix "git log --stat": make sure to set recursive with --stat.
2006-04-18GIT 1.3.0Libravatar Junio C Hamano1-1/+1
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Add git-annotate(1) and git-blame(1)Libravatar Jonas Fonseca4-1/+92
[jc: with entries in git.txt] Signed-off-by: Jonas Fonseca <fonseca@diku.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18Fix "git log --stat": make sure to set recursive with --stat.Libravatar Junio C Hamano2-2/+9
Just like "patch" format always needs recursive, "diffstat" format does not make sense without setting recursive. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18diff --stat: make sure to set recursive.Libravatar Junio C Hamano3-5/+10
Just like "patch" format always needs recursive, "diffstat" format does not make sense without setting recursive. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-18git-svnimport symlink supportLibravatar Herbert Valerio Riedel1-2/+16
added svn:special symlink support for access methods other than direct-http Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org> Acked-by: Matthias Urlichs <smurf@smurf.noris.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17Merge branch 'lt/logopt' into nextLibravatar Junio C Hamano11-196/+196
* lt/logopt: combine-diff: show diffstat with the first parent. git.c: LOGSIZE is unused after log printing cleanup. Log message printout cleanups (#3): fix --pretty=oneline Log message printout cleanups (#2) Log message printout cleanups rev-list --header: output format fix
2006-04-17Merge branch 'master' into nextLibravatar Junio C Hamano7-33/+50
* master: packed_object_info_detail(): check for corrupt packfile. cleanups: remove unused variable from exec_cmd.c cleanups: prevent leak of two strduped strings in config.c cleanups: Remove impossible case in quote.c cleanups: Remove unused vars from combine-diff.c cleanups: Fix potential bugs in connect.c Allow empty lines in info/grafts
2006-04-17combine-diff: show diffstat with the first parent.Libravatar Junio C Hamano1-5/+19
Asking for stat (either with --stat or --patch-with-stat) gives you diffstat for the first parent, even under combine-diff. While the combined patch is useful to highlight the complexity and interaction of the parts touched by all branches when reviewing a merge commit, diffstat is a tool to assess the extent of damage the merge brings in, and showing stat with the first parent is more sensible than clever per-parent diffstat. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17git.c: LOGSIZE is unused after log printing cleanup.Libravatar Junio C Hamano1-2/+0
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17Log message printout cleanups (#3): fix --pretty=onelineLibravatar Linus Torvalds1-2/+12
This option is very special, since pretty_print_commit() will _remove_ the newline at the end of it, so we want to have an extra separator between the things. I added a honking big comment this time, so that (a) I don't forget this _again_ (I broke "oneline" several times during this printout cleanup), and so that people can understand _why_ the code does what it does. Now, arguably the alternate fix is to always have the '\n' at the end in pretty-print-commit, but git-rev-list depends on the current behaviour (but we could have git-rev-list remove it, whatever). With the big comment, the code hopefully doesn't get broken again. And now things like git log --pretty=oneline --cc --patch-with-stat works (even if that is admittedly a totally insane combination: if you want the patch, having the "oneline" log format is just crazy, but hey, it _works_. Even insane people are people). Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17Log message printout cleanups (#2)Libravatar Linus Torvalds2-8/+17
Here's a further patch on top of the previous one with cosmetic improvements (no "real" code changes, just trivial updates): - it gets the "---" before a diffstat right, including for the combined merge case. Righ now the logic is that we always use "---" when we have a diffstat, and an empty line otherwise. That's how I visually prefer it, but hey, it can be tweaked later. - I made "diff --cc/combined" add the "---/+++" header lines too. The thing won't be mistaken for a valid diff, since the "@@" lines have too many "@" characters (three or more), but it just makes it visually match a real diff, which at least to me makes a big difference in readability. Without them, it just looks very "wrong". I guess I should have taken the filename from each individual entry (and had one "---" file per parent), but I didn't even bother to try to see how that works, so this was the simple thing. With this, doing a git log --cc --patch-with-stat looks quite readable, I think. The only nagging issue - as far as I'm concerned - is that diffstats for merges are pretty questionable the way they are done now. I suspect it would be better to just have the _first_ diffstat, and always make the merge diffstat be the one for "result against first parent". Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17packed_object_info_detail(): check for corrupt packfile.Libravatar Junio C Hamano1-2/+4
Serge E. Hallyn noticed that we compute how many input bytes are still left, but did not use it for sanity checking. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17Log message printout cleanupsLibravatar Linus Torvalds11-185/+151
On Sun, 16 Apr 2006, Junio C Hamano wrote: > > In the mid-term, I am hoping we can drop the generate_header() > callchain _and_ the custom code that formats commit log in-core, > found in cmd_log_wc(). Ok, this was nastier than expected, just because the dependencies between the different log-printing stuff were absolutely _everywhere_, but here's a patch that does exactly that. The patch is not very easy to read, and the "--patch-with-stat" thing is still broken (it does not call the "show_log()" thing properly for merges). That's not a new bug. In the new world order it _should_ do something like if (rev->logopt) show_log(rev, rev->logopt, "---\n"); but it doesn't. I haven't looked at the --with-stat logic, so I left it alone. That said, this patch removes more lines than it adds, and in particular, the "cmd_log_wc()" loop is now a very clean: while ((commit = get_revision(rev)) != NULL) { log_tree_commit(rev, commit); free(commit->buffer); commit->buffer = NULL; } so it doesn't get much prettier than this. All the complexity is entirely hidden in log-tree.c, and any code that needs to flush the log literally just needs to do the "if (rev->logopt) show_log(...)" incantation. I had to make the combined_diff() logic take a "struct rev_info" instead of just a "struct diff_options", but that part is pretty clean. This does change "git whatchanged" from using "diff-tree" as the commit descriptor to "commit", and I changed one of the tests to reflect that new reality. Otherwise everything still passes, and my other tests look fine too. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17cleanups: remove unused variable from exec_cmd.cLibravatar Serge E. Hallyn1-3/+1
Not sure whether it should be removed, or whether execv_git_cmd() should return it rather than -1 at bottom. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17cleanups: prevent leak of two strduped strings in config.cLibravatar Serge E. Hallyn1-11/+28
Config_filename and lockfile are strduped and then leaked in git_config_set_multivar. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17cleanups: Remove impossible case in quote.cLibravatar Serge E. Hallyn1-2/+0
The switch is inside an if statement which is false if the character is ' '. Either the if should be <=' ' instead of <' ', or the case should be removed as it could be misleading. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17cleanups: Remove unused vars from combine-diff.cLibravatar Serge E. Hallyn1-10/+2
Mod_type in particular sure looks like it wants to be used, but isn't. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17cleanups: Fix potential bugs in connect.cLibravatar Serge E. Hallyn1-4/+14
The strncmp for ACK was ACK does not include the final space. Presumably either we should either remove the trailing space, or compare 4 chars (as this patch does). 'path' is sometimes strdup'ed, but never freed. Signed-off-by: Serge E. Hallyn <serue@us.ibm.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17Merge branch 'jc/boundary'Libravatar Junio C Hamano4-10/+36
* jc/boundary: rev-list --boundary: show boundary commits even when limited otherwise.
2006-04-17Merge branch 'jc/bottomless'Libravatar Junio C Hamano1-0/+2
* jc/bottomless: rev-list --bisect: limit list before bisecting.
2006-04-17Allow empty lines in info/graftsLibravatar Yann Dirson1-1/+1
In addition to the existing comment support, that just allows the user to use a convention that works pretty much everywhere else. Signed-off-by: Yann Dirson <ydirson@altern.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-17rev-list --header: output format fixLibravatar Junio C Hamano1-0/+3
Initial fix prepared by Johannes, but I did it slightly differently. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge branch 'jc/boundary' into nextLibravatar Junio C Hamano7-14/+41
* jc/boundary: rev-list --boundary: show boundary commits even when limited otherwise. Makefile fixups. gitk: Fix bug caused by missing commitlisted elements
2006-04-16rev-list --boundary: show boundary commits even when limited otherwise.Libravatar Junio C Hamano4-10/+36
The boundary commits are shown for UI like gitk to draw them as soon as topo-order sorting allows, and should not be omitted by get_revision() filtering logic. As long as their immediate child commits are shown, we should not filter them out. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Makefile fixups.Libravatar A Large Angry SCM2-2/+2
Signed-off-by: A Large Angry SCM <gitzilla@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-2/+3
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: Fix bug caused by missing commitlisted elements
2006-04-17gitk: Fix bug caused by missing commitlisted elementsLibravatar Paul Mackerras1-2/+3
This bug was reported by Yann Dirson, and results in an 'Error: expected boolean value but got ""' dialog when scrolling to the bottom of the graph under some circumstances. The issue is that git-rev-list isn't outputting all the boundary commits when it is asked for commits affecting only certain files. We already cope with that by adding the missing boundary commits in addextraid, but there we weren't adding a 0 to the end of the commitlisted list when we added the extra id to the end of the displayorder list. This fixes it by appending 0 to commitlisted in addextraid, thus keeping commitlisted and displayorder in sync. Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-04-16Merge branch 'master' into nextLibravatar Junio C Hamano1-1/+3
* master: reading $GIT_DIR/info/graft - skip comments correctly.
2006-04-16Merge branch 'lt/logopt' into nextLibravatar Junio C Hamano2-4/+15
* lt/logopt: Fixes for option parsing
2006-04-16Fixes for option parsingLibravatar Linus Torvalds2-4/+15
Make sure "git show" always show the header, regardless of whether there is a diff or not. Also, make sure "always_show_header" actually works, since generate_header only tested it in one out of three return paths. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16reading $GIT_DIR/info/graft - skip comments correctly.Libravatar Junio C Hamano1-1/+3
Noticed by Yann Dirson. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge branch 'lt/logopt' into nextLibravatar Junio C Hamano3-27/+36
* lt/logopt: log/whatchanged/show - log formatting cleanup. Simplify common default options setup for built-in log family.
2006-04-16log/whatchanged/show - log formatting cleanup.Libravatar Junio C Hamano3-15/+30
This moves the decision to print the log message, while diff options are in effect, to log-tree. It gives behaviour closer to the traditional one. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Simplify common default options setup for built-in log family.Libravatar Junio C Hamano1-13/+7
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge branch 'master' into lt/logoptLibravatar Junio C Hamano8-21/+169
* master: pager: do not fork a pager if PAGER is set to empty. diff-options: add --patch-with-stat diff-files --stat: do not dump core with unmerged index. Support "git cmd --help" syntax diff --stat: do not do its own three-dashes. diff-tree: typefix. GIT v1.3.0-rc4 xdiff: post-process hunks to make them consistent.
2006-04-16Merge branch 'jc/pager-cat' into nextLibravatar Junio C Hamano1-7/+10
* jc/pager-cat: Do not fork PAGER=cat pager: do not fork a pager if PAGER is set to empty.
2006-04-16Do not fork PAGER=catLibravatar Junio C Hamano1-1/+1
Unless the user has a nonstandard "cat" command that does not meow like a cat, this should not break anything and would save an extra pipe. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16pager: do not fork a pager if PAGER is set to empty.Libravatar Johannes Schindelin1-7/+10
This skips an extra pipe, and helps debugging tremendously. [jc: PAGER=cat is a questionable hack and should be done as a separate patch. ] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-04-16Merge branch 'lt/logopt' into nextLibravatar Junio C Hamano9-343/+289
* lt/logopt: Tentative built-in "git show" Built-in git-whatchanged. rev-list option parser fix. Split init_revisions() out of setup_revisions()