summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-03-27git-upload-pack: make sure we close unused pipe endsLibravatar H. Peter Anvin1-0/+1
Right now, we don't close the read end of the pipe when git-upload-pack runs git-pack-object, so we hang forever (why don't we get SIGALRM?) instead of dying with SIGPIPE if the latter dies, which seems to be the norm if the client disconnects. Thanks to Johannes Schindelin <Johannes.Schindelin@gmx.de> for pointing out where this close() needed to go. This patch has been tested on kernel.org for several weeks and appear to resolve the problem of git-upload-pack processes hanging around forever. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27--pretty=format: fix broken %ct and %at interpolationLibravatar Jeff King1-1/+1
A pointer arithmetic error in fill_person caused random data from the commit object to be included with the timestamp, which looked something like: $ git-rev-list --pretty=format:%ct origin/next | head commit 98453bdb3db10db26099749bc4f2dc029bed9aa9 1174977948 -0700 Merge branch 'master' into next * master: Bisect: Use commit c0ce981f5ebfd02463ff697b2fca52c7a54b0625 1174889646 -0700 Signed-off-by: Jeff King <peff@peff.net> Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27use xrealloc in help.cLibravatar James Bowes1-11/+1
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27read-tree: use xcallocLibravatar James Bowes1-1/+1
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27Fix "getaddrinfo()" bugletLibravatar Linus Torvalds1-1/+3
At least in Linux glibc, "getaddrinfo()" has a very irritating feature (or bug, who knows..). Namely if you pass it in an empty string for the service name, it will happily and quietly consider it identical to a NULL port pointer, and return port number zero and no errors. Which obviously will not work. Maybe that's what it's really expected to do, although the man-page for getaddrinfo() certainly implies that it's a bug. So when somebody passes me a "please pull" request pointing to something like the following git://git.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git (note the extraneous colon at the end of the host name), git would happily try to connect to port 0, which would generally just cause the remote to not even answer, and the "connect()" will take a long time to time out. So to work around the glibc feature/bug, just notice this empty port case automatically. Also, add the port information to the error information when it fails to look up (maybe it's the host-name that fails, maybe it's the port-name - we should print out both). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27Makefile: remove test-chmtime program in target clean.Libravatar Gerrit Pape1-1/+1
While running 'make test', the test-chmtime program is created, and should be cleaned up on 'make clean'. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27gitweb: Cleanup and uniquify die_error callsLibravatar Jakub Narebski1-3/+3
Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27sha1_file.c (write_sha1_file): Detect close failureLibravatar Junio C Hamano1-1/+2
This is in the same spirit as earlier fix to write_sha1_from_fd(). Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27git.el: Display some information about the HEAD commit.Libravatar Alexandre Julliard1-2/+20
Use git-log --pretty=oneline to print a short description of the current HEAD (and merge heads if any) in the buffer header. Signed-off-by: Alexandre Julliard <julliard@winehq.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27Document git-log --first-parentLibravatar Junio C Hamano1-0/+5
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27Bisect: add checks at the beginning of "git bisect run".Libravatar Christian Couder1-0/+8
We may be able to "run" with only one good revision given and then verify that the result of the first run is bad. And perhaps also the other way around. But for now let's check that we have at least one bad and one good revision before we start to run. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27sha1_file.c (write_sha1_from_fd): Detect close failure.Libravatar Jim Meyering1-1/+2
I stumbled across this in the context of the fchmod 0444 patch. At first, I was going to unlink and call error like the two subsequent tests do, but a failed write (above) provokes a "die", so I made this do the same. This is testing for a write failure, after all. Signed-off-by: Jim Meyering <jim@meyering.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-27git-rm: don't remove newly added file without -fLibravatar Jeff King1-14/+4
Given this set of commands: $ echo "newly added file" >new $ git add new $ git rm new the file "new" was previously removed from the working directory and the index. Because it was not in HEAD, it is available only by searching for unreachable objects. Instead, we now err on the safe side and refuse to remove a file which is not referenced by HEAD. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25Bisect: Use "git-show-ref --verify" when reseting.Libravatar Christian Couder1-1/+1
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25gitweb: Add example of config file and how to generate projects list to ↵Libravatar Jakub Narebski1-2/+43
gitweb/INSTALL Add simple example of config file (turning on and allowing override of a few %features). Also example config file and script to generate list of projects in a format that can be used as GITWEB_LIST / $projects_list. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25GIT 1.5.1-rc2Libravatar Junio C Hamano2-14/+41
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25git-svn: fix rel_path() when not connected to the repository rootLibravatar Eric Wong1-2/+4
This should fix fetching for people who did not use "git svn --minimize" or cannot connect to the repository root due to the lack of permissions. I'm not sure what I was on when I made the change to the rel_path() function in 4e9f6cc78e5d955bd0faffe76ae9aea6590189f1 that made it die() when we weren't connected to the repository root :x Thanks to Sven Verdoolaege for reporting this bug. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25use xmalloc in git.c and help.cLibravatar James Bowes2-2/+2
Signed-off-by: James Bowes <jbowes@dangerouslyinc.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25Merge branch 'jc/fpl'Libravatar Junio C Hamano2-5/+12
* jc/fpl: git-log --first-parent: show only the first parent log
2007-03-25Update README to point at a few key periodical messages to the listLibravatar Junio C Hamano1-0/+6
They give a good starting point to new people who want to get involved. This owes suggestions by Martin Langhoff and Steven Grimm. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-25Merge branch 'maint'Libravatar Junio C Hamano4-453/+416
* maint: user-manual: introduce "branch" and "branch head" differently glossary: clean up cross-references glossary: stop generating automatically user-manual: Use def_ instead of ref_ for glossary references. user-manual.txt: fix a tiny typo. user-manual: run xsltproc without --nonet option
2007-03-25Merge branch 'maint' of git://linux-nfs.org/~bfields/git into maintLibravatar Junio C Hamano4-453/+416
* 'maint' of git://linux-nfs.org/~bfields/git: user-manual: introduce "branch" and "branch head" differently glossary: clean up cross-references glossary: stop generating automatically user-manual: Use def_ instead of ref_ for glossary references. user-manual.txt: fix a tiny typo. user-manual: run xsltproc without --nonet option
2007-03-25Merge branch 'js/remote-show-push'Libravatar Junio C Hamano1-1/+15
* js/remote-show-push: Teach git-remote to list pushed branches.
2007-03-25Merge branch 'maint'Libravatar Junio C Hamano2-1/+185
* maint: gitweb: Add some installation notes in gitweb/INSTALL gitweb: Fix not marking signoff lines in "log" view gitweb: Don't escape attributes in CGI.pm HTML methods gitweb: Change to use explicitly function call cgi->escapHTML()
2007-03-24Use diff* with --exit-code in git-am, git-rebase and git-merge-oursLibravatar Alex Riesen3-18/+12
This simplifies the shell code, reduces its memory footprint, and speeds things up. The performance improvements should be noticable when git-rebase works on big commits. Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24Document --quiet option to git-diffLibravatar Alex Riesen1-0/+3
Signed-off-by: Alex Riesen <raa.lkml@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24write_sha1_from_fd() should make new objects read-onlyLibravatar Nicolas Pitre1-0/+1
... like it is done everywhere else. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24make it more obvious that temporary files are temporary filesLibravatar Nicolas Pitre3-6/+6
When some operations are interrupted (or "die()'d" or crashed) then the partial object/pack/index file may remain around. Make it more obvious in their name that those files are temporary stuff and can be cleaned up if no operation is in progress. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24update-hook: remove e-mail sending hook.Libravatar Andy Parkins1-222/+3
The update hook's only job is to decide is a particular update is allowed or not. It was not the right place to send out update notification e-mails from to begin with, as the final stage of updating refs can fail after this hook runs. Signed-off-by: Andy Parkins <andyparkins@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24gitweb: Add some installation notes in gitweb/INSTALLLibravatar Jakub Narebski1-0/+184
Add some installation and configuration notes for gitweb in gitweb/INSTALL. Make use of filling gitweb configuration by Makefile. It does not cover (yet?) all the configuration variables and options. Some of contents duplicates information in gitweb/README file (it is referred from gitweb/INSTALL). Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24gitweb: Fix not marking signoff lines in "log" viewLibravatar Jakub Narebski1-1/+1
The CSS selector for signoff lines style was too strict: in the "log" view the commit message is not encompassed in container "page_body" div. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24gitweb: Don't escape attributes in CGI.pm HTML methodsLibravatar Jakub Narebski1-3/+3
There is no need to escape HTML tag's attributes in CGI.pm HTML methods (like CGI::a()), because CGI.pm does attribute escaping automatically. $cgi->a({ ... -attribute => atribute_value }, tag_contents) is translated to <a ... attribute="attribute_value">tag_contents</a> The rules for escaping attribute values (which are string contents) are different. For example you have to take care about escaping embedded '"' and "'" characters; CGI::a() does that for us automatically. CGI::a() does not HTML escape tag_contents; we would need to write <a href="URL">some <b>bold</b> text</a> for example. So we use esc_html (or esc_path) to escape tag_contents as needed. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24gitweb: Change to use explicitly function call cgi->escapHTML()Libravatar Li Yang1-2/+2
Change to use explicitly function call cgi->escapHTML(). This fix the problem on some systems that escapeHTML() is not functioning, as default CGI is not setting 'escape' parameter. Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24git-am documentation: describe what is taken from where.Libravatar Junio C Hamano1-0/+27
Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-24git-revert: Revert revert message to old behaviourLibravatar Johannes Schindelin1-5/+5
When converting from the shell script, based on a misreading of the sed invocation, the builtin included the abbreviated commit name, and did _not_ include the quotes around the oneline message. This fixes it. [jc: with a fix for the typo/thinko spotted by Linus, and also removing the unwanted abbrev at the beginning.] Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: gitweb: Fix "next" link in commit view
2007-03-23Documentation: bisect: make a comment fit better in the man page.Libravatar Christian Couder1-3/+3
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Documentation: bisect: add some titles to some paragraphs.Libravatar Christian Couder1-0/+21
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Documentation: bisect: reformat more paragraphs.Libravatar Christian Couder1-34/+39
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Documentation: bisect: reword one paragraph.Libravatar Christian Couder1-3/+3
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Documentation: bisect: reformat some paragraphs.Libravatar Christian Couder1-6/+6
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Fix path-limited "rev-list --bisect" termination condition.Libravatar Junio C Hamano1-1/+1
In a path-limited bisection, when the $bad commit is not changing the limited path, and the number of suspects is 1, the code miscounted and returned $bad from find_bisection(), which is not marked with TREECHANGE. This is of course filtered by the output routine, resulting in an empty output, in turn causing git-bisect driver to say "$bad was both good and bad". Illustration. Suppose you have these four commits, and only C changes path P. You know D is bad and A is good. A---B---C*--D git-bisect driver runs this to find a bisection point: $ git rev-list --bisect A..D -- P which calls find_bisection() with B, C and D. The set of commits that is given to this function is the same set of commits as rev-list without --bisect option and pathspec returns. Among them, only C is marked with TREECHANGE. Let's call the set of commits given to find_bisection() that are marked with TREECHANGE (or all of them if no path limiter is in effect) "the bisect set". In the above example, the size of the bisect set is 1 (contains only "C"). For each commit in its input, find_bisection() computes the number of commits it can reach in the bisect set. For a commit in the bisect set, this number includes itself, so the number is 1 or more. This number is called "depth", and computed by count_distance() function. When you have a bisect set of N commits, and a commit has depth D, how good is your bisection if you returned that commit? How good this bisection is can be measured by how many commits are effectively tested "together" by testing one commit. Currently you have (N-1) untested commits (the tip of the bisect set, although it is included in the bisect set, is already known to be bad). If the commit with depth D turns out to be bad, then your next bisect set will have D commits and you will have (D-1) untested commits left, which means you tested (N-1)-(D-1) = (N-D) commits with this bisection. If it turns out to be good, then your next bisect set will have (N-D) commits, and you will have (N-D-1) untested commits left, which means you tested (N-1)-(N-D-1) = D commits with this bisection. Therefore, the goodness of this bisection is is min(N-D, D), and find_bisection() function tries to find a commit that maximizes this, by initializing "closest" variable to 0 and whenever a commit with the goodness that is larger than the current "closest" is found, that commit and its goodness are remembered by updating "closest" variable. The "the commit with the best goodness so far" is kept in "best" variable, and is initialized to a commit that happens to be at the beginning of the list of commits given to this function (which may or may not be in the bisect set when path-limit is in use). However, when N is 1, then the sole tree-changing commit has depth of 1, and min(N-D, D) evaluates to 0. This is not larger than the initial value of "closest", and the "so far the best one" commit is never replaced in the loop. When path-limit is not in use, this is not a problem, as any commit in the input set is tree-changing. But when path-limit is in use, and when the starting "bad" commit does not change the specified path, it is not correct to return it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23gitweb: Fix "next" link in commit viewLibravatar Jakub Narebski1-1/+1
Fix copy'n'paste error in commit c9d193df which caused that "next" link for merge commits in "commit" view (merge: _commit_ _commit_ ...) was to "commitdiff" view instead of being to "commit" view. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23git-bisect.sh: properly dq $GIT_DIRLibravatar Junio C Hamano1-1/+1
Otherwise you would be in trouble if your GIT_DIR has IFS letters in it. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23git-bisect: typofixLibravatar Junio C Hamano1-1/+1
The branch you are on while bisecting is always "bisect", and checking for "refs/heads/bisect*" is wrong. Only check if it is exactly "refs/heads/bisect". Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23checkout: report where the new HEAD is upon detaching HEADLibravatar Junio C Hamano1-2/+10
After "git reset" moves the HEAD around, it reports which commit you are on, which gives the user a warm fuzzy feeling of assurance. Give the same assurance from git-checkout when moving the detached HEAD around. Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Bisect: implement "git bisect run <cmd>..." to automatically bisect.Libravatar Christian Couder3-3/+138
This idea was suggested by Bill Lear (Message-ID: <17920.38942.364466.642979@lisa.zopyra.com>) and I think it is a very good one. This patch adds a new test file for "git bisect run", but there is currently only one basic test. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-23Bisect: convert revs given to good and bad to commitsLibravatar Uwe Kleine-König1-2/+2
Without this the rev could be (e.g.) a tag and then the condition to end the bisect might fail and you have to check the already known to be bad revision once more. Signed-off-by: Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-22t4118: be nice to non-GNU sedLibravatar Johannes Schindelin1-1/+2
Elias Pipping: > I'm on a mac, hence /usr/bin/sed is not gnu sed, which makes > t4118 fail. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Ack'd-by: Elias Pipping <pipping@macports.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2007-03-22git-apply: Do not free the wrong buffer when we convert the data for writeoutLibravatar Junio C Hamano1-7/+10
When we write out the result of patch application, we sometimes need to munge the data (e.g. under core.autocrlf). After doing so, what we should free is the temporary buffer that holds the converted data returned from convert_to_working_tree(), not the original one. This patch also moves the call to open() up in the function, as the caller expects us to fail cheaply if leading directories need to be created (and then the caller creates them and calls us again). For that calling pattern, attempting conversion before opening the file adds unnecessary overhead. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Junio C Hamano <junkio@cox.net>