summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2006-06-05builtin-push: don't pass --thin to HTTP transportLibravatar Nick Hengeveld1-9/+11
git-http-push does not currently use packs to transfer objects. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05pack-objects: improve path grouping heuristics.Libravatar Linus Torvalds1-50/+19
This trivial patch not only simplifies the name hashing, it actually improves packing for both git and the kernel. The git archive pack shrinks from 6824090->6622627 bytes (a 3% improvement), and the kernel pack shrinks from 108756213 to 108219021 (a mere 0.5% improvement, but still, it's an improvement from making the hashing much simpler!) We just create a 32-bit hash, where we "age" previous characters by two bits, so the last characters in a filename count most. So when we then compare the hashes in the sort routine, filenames that end the same way sort the same way. It takes the subdirectory into account (unless the filename is > 16 characters), but files with the same name within the same subdirectory will obviously sort closer than files in different subdirectories. And, incidentally (which is why I tried the hash change in the first place, of course) builtin-rev-list.c will sort fairly close to rev-list.c. And no, it's not a "good hash" in the sense of being secure or unique, but that's not what we're looking for. The whole "hash" thing is misnamed here. It's not so much a hash as a "sorting number". [jc: rolled in simplification for computing the sorting number computation for thin pack base objects] Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05rev-list: fix process_tree() conversion.Libravatar Linus Torvalds1-2/+2
The tree-walking conversion of the "process_tree()" function broke packing by using an unrelated variable from outer scope. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05Fix typo in tutorial-2.txtLibravatar Linus Torvalds1-1/+1
This should be obvious enough. I didn't actually _test_ the tutorial, but if the old command worked, something is really wrong! Signed-off-by: Linus "Duh!" Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05Fix Documentation/everyday.txt: Junio's workflowLibravatar Horst H. von Brand1-7/+12
The workflow for Junio was badly formatted. Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05Add example xinetd(8) configuration to Documentation/everyday.txtLibravatar Horst H. von Brand1-0/+23
Many Linux distributions use xinetd(8), not inetd(8). Give a sample configuration file. Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-05read-tree: fix eye-candy.Libravatar Linus Torvalds1-0/+1
Anton Blanchard spotted that watching checkout stage of a clone on a slow terminal takes ages because it forgot to clear the "once a second happened" flag, so instead of updates the percentage output for every file it checks out after the first second has passed. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-04gitview: Add some useful keybindings.Libravatar Aneesh Kumar K.V2-0/+21
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-03Merge branch 'lt/tree-2'Libravatar Junio C Hamano16-216/+293
* lt/tree-2: fetch.c: do not call process_tree() from process_tree(). tree_entry(): new tree-walking helper function adjust to the rebased series by Linus. Remove "tree->entries" tree-entry list from tree parser Switch "read_tree_recursive()" over to tree-walk functionality Make "tree_entry" have a SHA1 instead of a union of object pointers Add raw tree buffer info to "struct tree" Remove last vestiges of generic tree_entry_list Convert fetch.c: process_tree() to raw tree walker Convert "mark_tree_uninteresting()" to raw tree walker Remove unused "zeropad" entry from tree_list_entry fsck-objects: avoid unnecessary tree_entry_list usage Remove "tree->entries" tree-entry list from tree parser builtin-read-tree.c: avoid tree_entry_list in prime_cache_tree_rec() Switch "read_tree_recursive()" over to tree-walk functionality Make "tree_entry" have a SHA1 instead of a union of object pointers Make "struct tree" contain the pointer to the tree buffer
2006-06-03Merge branch 'sp/reflog'Libravatar Junio C Hamano26-242/+755
* sp/reflog: fetch.c: do not pass uninitialized lock to unlock_ref(). Test that git-branch -l works. Verify git-commit provides a reflog message. Enable ref log creation in git checkout -b. Create/delete branch ref logs. Include ref log detail in commit, reset, etc. Change order of -m option to update-ref. Correct force_write bug in refs.c Change 'master@noon' syntax to 'master@{noon}'. Log ref updates made by fetch. Force writing ref if it doesn't exist. Added logs/ directory to repository layout. General ref log reading improvements. Fix ref log parsing so it works properly. Support 'master@2 hours ago' syntax Log ref updates to logs/refs/<ref> Convert update-ref to use ref_lock API. Improve abstraction of ref lock/write.
2006-06-03Merge branch 'ff/svnimport'Libravatar Junio C Hamano1-2/+9
* ff/svnimport: git-svnimport: Improved detection of merges.
2006-06-03read-tree --reset: update working tree file for conflicted paths.Libravatar Junio C Hamano1-10/+14
The earlier "git reset --hard" simplification stopped removing leftover working tree files from a failed automerge, when switching back to the HEAD version that does not have the paths. This patch, instead of removing the unmerged paths from the index, drops them down to stage#0 but marks them with mode=0 (the same "to be deleted" marker we internally use for paths deleted by the merge). one_way_merge() function and the functions it calls already know what to do with them -- if the tree we are reading has the path the working tree file is overwritten, and if it doesn't the working tree file is removed. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-03Merge branch 'jc/fmt-patch'Libravatar Junio C Hamano4-39/+113
* jc/fmt-patch: Update documentation for git-format-patch format-patch: resurrect extra headers from config format-patch --signoff
2006-06-03Documentation: Spelling fixesLibravatar Horst H. von Brand28-47/+47
Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-03Builtin git-rev-parse.Libravatar Christian Couder4-6/+8
Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-03fetch: do not report "same" unless -verbose.Libravatar Junio C Hamano1-1/+4
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-02Merge branch 'ds/doc' into jc/fmt-patchLibravatar Junio C Hamano7-101/+152
* ds/doc: Update documentation for git-format-patch sha1_file: avoid re-preparing duplicate packs handle concurrent pruning of packed objects http: prevent segfault during curl handle reuse Remove possible segfault in http-fetch. gitk: show_error fix [PATCH] gitk: start-up bugfix [PATCH] gitk: Replace "git-" commands with "git " [PATCH] gitk: Display commit messages with word wrap gitk: Fix bug where page-up/down wouldn't always work properly gitk: Fix display of "(...)" for parents/children we haven't drawn send-email: only 'require' instead of 'use' Net::SMTP Allow multiple -m options to git-commit.
2006-06-02Update documentation for git-format-patchLibravatar Dennis Stosberg1-34/+35
[jc: adjusted for recently resurrected features] Signed-off-by: Dennis Stosberg <dennis@stosberg.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-02fetch.c: do not call process_tree() from process_tree().Libravatar Junio C Hamano1-3/+10
This function reads a freshly fetched tree object, and schedules the objects pointed by it for further fetching, so doing lookup_tree() and process_tree() recursively from there does not make much sense. We need to use process() on it to make sure we fetch it first, and leave the recursive processing to later stages. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-02sha1_file: avoid re-preparing duplicate packsLibravatar Jeff King1-0/+6
When adding packs, skip the pack if we already have it in the packed_git list. This might happen if we are re-preparing our packs because of a missing object. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-02handle concurrent pruning of packed objectsLibravatar Jeff King1-6/+18
This patch causes read_sha1_file and sha1_object_info to re-examine the list of packs if an object cannot be found. It works by re-running prepare_packed_git() after an object fails to be found. It does not attempt to clean up the old pack list. Old packs which are in use can continue to be used (until unused by lru selection). New packs are placed at the front of the list and will thus be examined before old packs. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-06-02Merge branch 'nh/http'Libravatar Junio C Hamano2-5/+8
* nh/http: http: prevent segfault during curl handle reuse Remove possible segfault in http-fetch.
2006-06-02format-patch: resurrect extra headers from configLibravatar Johannes Schindelin3-3/+26
Once again, if you have [format] headers = "Origamization: EvilEmpire\n" format-patch will add these headers just after the "Subject:" line. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31Merge git://git.kernel.org/pub/scm/gitk/gitkLibravatar Junio C Hamano1-48/+54
* git://git.kernel.org/pub/scm/gitk/gitk: gitk: show_error fix [PATCH] gitk: start-up bugfix [PATCH] gitk: Replace "git-" commands with "git " [PATCH] gitk: Display commit messages with word wrap gitk: Fix bug where page-up/down wouldn't always work properly gitk: Fix display of "(...)" for parents/children we haven't drawn
2006-05-31http: prevent segfault during curl handle reuseLibravatar Nick Hengeveld1-3/+6
If a curl handle is configured with special options, they may reference information that is freed after the request is complete which can cause a segfault if the curl handle is reused for a different type of request. This patch resets these options to a safe state when a transfer slot is assigned to a new request. Signed-off-by: Nick Hengeveld <nickh@reactrix.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31send-email: only 'require' instead of 'use' Net::SMTPLibravatar Johannes Schindelin1-1/+1
This was proposed by Eric Wong and fixes the test. (Of course, git-send-email does not work, if there is no Net::SMTP here, but it will say what is wrong when you actually try to use send-email.) Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31Allow multiple -m options to git-commit.Libravatar Shawn Pearce1-7/+30
I find it very convenient to be able to supply multiple paragraphs of text on the command line with a single git-commit call. This change permits multiple -m/--message type options to be supplied to git-commit with each message being added as its own paragraph of text in the commit message. The -m option is still not permitted with -c/-C/-F nor are multiple occurrences of these options permitted. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31fetch.c: do not pass uninitialized lock to unlock_ref().Libravatar Junio C Hamano1-4/+7
Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31format-patch --signoffLibravatar Junio C Hamano3-2/+52
This resurrects --signoff option to format-patch. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-31git-svnimport: Improved detection of merges.Libravatar Florian Forster1-2/+9
The regexes detecting merges (while still relying on the commit messages, though) have been improved to catch saner (and hopefully more) messages. The old regex was so generic that it often matched something else and missed the actual merge-message. Also, the regex given with the `-M' commandline-option is checked first: Explicitely given regexes should be considered better than the builtin ones, and should therefore be given a chance to match a message first. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Improved pack format documentation.Libravatar Shawn Pearce1-3/+8
While trying to implement a pack reader in Java I was mislead by some facts listed in this documentation as well as found a few details to be missing about the pack header. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30tree_entry(): new tree-walking helper functionLibravatar Linus Torvalds11-141/+112
This adds a "tree_entry()" function that combines the common operation of doing a "tree_entry_extract()" + "update_tree_entry()". It also has a simplified calling convention, designed for simple loops that traverse over a whole tree: the arguments are pointers to the tree descriptor and a name_entry structure to fill in, and it returns a boolean "true" if there was an entry left to be gotten in the tree. This allows tree traversal with struct tree_desc desc; struct name_entry entry; desc.buf = tree->buffer; desc.size = tree->size; while (tree_entry(&desc, &entry) { ... use "entry.{path, sha1, mode, pathlen}" ... } which is not only shorter than writing it out in full, it's hopefully less error prone too. [ It's actually a tad faster too - we don't need to recalculate the entry pathlength in both extract and update, but need to do it only once. Also, some callers can avoid doing a "strlen()" on the result, since it's returned as part of the name_entry structure. However, by now we're talking just 1% speedup on "git-rev-list --objects --all", and we're definitely at the point where tree walking is no longer the issue any more. ] NOTE! Not everybody wants to use this new helper function, since some of the tree walkers very much on purpose do the descriptor update separately from the entry extraction. So the "extract + update" sequence still remains as the core sequence, this is just a simplified interface. We should probably add a silly two-line inline helper function for initializing the descriptor from the "struct tree" too, just to cut down on the noise from that common "desc" initializer. Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30git_exec_path, execv_git_cmd: ignore empty environment variablesLibravatar Dmitry V. Levin1-2/+2
Ignoring empty environment variables is good common practice. Ignoring --exec-path with empty argument won't harm, too: if user means current directory, there is a "--exec-path=." Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30execv_git_cmd: Fix stack buffer overflow.Libravatar Dmitry V. Levin1-9/+23
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Fixed Cygwin CR-munging problem in mailsplitLibravatar Salikh Zakirov1-1/+1
Do not open mailbox file as fopen(..., "rt") as this strips CR characters from the diff, thus breaking the patch context for changes in CRLF files. Signed-off-by: Salikh Zakirov <Salikh.Zakirov@Intel.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-30Merge branch 'ew/tests'Libravatar Junio C Hamano5-68/+82
* ew/tests: t6000lib: workaround a possible dash bug t5500-fetch-pack: remove local (bashism) usage. tests: Remove heredoc usage inside quotes t3300-funny-names: shell portability fixes
2006-05-30send-email: do not pass bogus address to local sendmail binaryLibravatar Junio C Hamano2-8/+17
This makes t9001 test happy. Also fixes the warning on uninitialized $references variable again. Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Add a basic test case for git send-email, and fix some real bugs discovered.Libravatar Ryan Anderson1-0/+34
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Fix a bug in email extraction used in git-send-email.Libravatar Ryan Anderson1-1/+6
(Also, kill off an accidentally created warning.) Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Add support for --bcc to git-send-email.Libravatar Ryan Anderson1-2/+8
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-send-email: Add References: headers to emails, in addition to In-Reply-To:Libravatar Ryan Anderson1-2/+11
Signed-off-by: Ryan Anderson <rda@google.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-clean fails on files beginning with a dashLibravatar Dennis Stosberg1-2/+2
Reproducible with: $ git init-db $ echo "some text" >-file $ git clean Removing -file rm: invalid option -- l Try `rm --help' for more information. Signed-off-by: Dennis Stosberg <dennis@stosberg.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-svn: remove assertion that broke with older versions of svnLibravatar Eric Wong1-1/+0
svn < 1.3.x would display changes to keywords lines as modified if they aren't expanded in the working copy. We already check for changes against the git tree here, so checking against the svn one is probably excessive. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29git-svn: t0001: workaround a heredoc bug in old versions of dashLibravatar Eric Wong1-1/+2
The dash installed on my Debian Sarge boxes don't seem to like <<'' as a heredoc starter. Recent versions of dash do not need this fix. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Documentation: fix a tutorial-2 typoLibravatar J. Bruce Fields1-1/+1
Fix a typo. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Documentation: retitle the git-core tutorialLibravatar J. Bruce Fields1-2/+2
Give the git-core tutorial a name that better reflects its intended audience. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29documentation: add brief mention of cat-file to tutorial part ILibravatar J. Bruce Fields1-1/+7
I'd rather avoid git cat-file so early on, but the git-cat-file -p old-commit:/path/to/file trick is too useful.... Also fix a nearby typo while we're at it. Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29documentation: mention gitk font adjustment in tutorialLibravatar J. Bruce Fields1-1/+3
Kind of silly, but the font I get by default in gitk makes it mostly unusable for me, so this is the first thing I'd want to know about. (But maybe there's a better suggestion than just Ctrl-='ing until satisfied.) Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Fix some documentation typoesLibravatar Horst von Brand1-3/+3
Fix some typoes in Documentation/everyday.txt Signed-off-by: Horst H. von Brand <vonbrand@inf.utfsm.cl> Signed-off-by: Junio C Hamano <junkio@cox.net>
2006-05-29Merge branch 'jc/lt-tree-n-cache-tree' into lt/tree-2Libravatar Junio C Hamano0-0/+0
* jc/lt-tree-n-cache-tree: adjust to the rebased series by Linus. Remove "tree->entries" tree-entry list from tree parser Switch "read_tree_recursive()" over to tree-walk functionality Make "tree_entry" have a SHA1 instead of a union of object pointers Add raw tree buffer info to "struct tree" This results as if an "ours" merge absorbed the previous "next" branch change into the 10-patch series, but it really is a result of an honest merge. nothing to commit