summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-12-01bulk-checkin: replace fast-import based implementationLibravatar Junio C Hamano11-78/+403
This extends the earlier approach to stream a large file directly from the filesystem to its own packfile, and allows "git add" to send large files directly into a single pack. Older code used to spawn fast-import, but the new bulk-checkin API replaces it. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-11-30csum-file: introduce sha1file_checkpointLibravatar Junio C Hamano3-17/+37
It is useful to be able to rewind a check-summed file to a certain previous state after writing data into it using sha1write() API. The fast-import command does this after streaming a blob data to the packfile being generated and then noticing that the same blob has already been written, and it does this with a private code truncate_pack() that is commented as "Yes, this is a layering violation". Introduce two API functions, sha1file_checkpoint(), that allows the caller to save a state of a sha1file, and then later revert it to the saved state. Use it to reimplement truncate_pack(). Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-28finish_tmp_packfile(): a helper functionLibravatar Junio C Hamano3-23/+42
Factor out a small logic out of the private write_pack_file() function in builtin/pack-objects.c. This changes the order of finishing multi-pack generation slightly. The code used to - adjust shared perm of temporary packfile - rename temporary packfile to the final name - update mtime of the packfile under the final name - adjust shared perm of temporary idxfile - rename temporary idxfile to the final name but because the helper does not want to do the mtime thing, the updated code does that step first and then all the rest. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-28create_tmp_packfile(): a helper functionLibravatar Junio C Hamano3-9/+16
Factor out a small logic out of the private write_pack_file() function in builtin/pack-objects.c Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-28write_pack_header(): a helper functionLibravatar Junio C Hamano3-6/+17
Factor out a small logic out of the private write_pack_file() function in builtin/pack-objects.c Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27Update draft release notes to 1.7.8Libravatar Junio C Hamano1-3/+1
Getting very close to -rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-27Merge branch 'sn/complete-bash-wo-process-subst'Libravatar Junio C Hamano1-1/+2
* sn/complete-bash-wo-process-subst: completion: fix issue with process substitution not working on Git for Windows
2011-10-27Merge branch 'rj/gitweb-clean-js'Libravatar Junio C Hamano1-1/+3
* rj/gitweb-clean-js: gitweb/Makefile: Remove static/gitweb.js in the clean target
2011-10-27Merge branch 'js/grep-mutex'Libravatar Junio C Hamano1-11/+26
* js/grep-mutex: builtin/grep: simplify lock_and_read_sha1_file() builtin/grep: make lock/unlock into static inline functions git grep: be careful to use mutexes only when they are initialized
2011-10-27Merge branch 'maint'Libravatar Junio C Hamano3-5/+55
* maint: clone: Quote user supplied path in a single quote pair read-cache.c: fix index memory allocation
2011-10-27Merge branch 'rs/maint-estimate-cache-size' into maintLibravatar Junio C Hamano2-3/+53
* rs/maint-estimate-cache-size: read-cache.c: fix index memory allocation
2011-10-27clone: Quote user supplied path in a single quote pairLibravatar Richard Hartmann1-2/+2
Without this patch, $ git clone foo . results in this: Cloning into .... done. With it: Cloning into '.'... done. Signed-off-by: Richard Hartmann <richih.mailinglist@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26Merge branch 'maint'Libravatar Junio C Hamano1-2/+6
* maint: make the sample pre-commit hook script reject names with newlines, too
2011-10-26Update draft release notes to 1.7.8Libravatar Junio C Hamano1-1/+17
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26Merge branch 'tc/submodule-clone-name-detection'Libravatar Junio C Hamano1-4/+4
* tc/submodule-clone-name-detection: submodule::module_clone(): silence die() message from module_name() submodule: whitespace fix
2011-10-26Merge branch 'lh/gitweb-site-html-head'Libravatar Junio C Hamano5-0/+17
* lh/gitweb-site-html-head: gitweb: provide a way to customize html headers
2011-10-26Merge branch 'mm/mediawiki-author-fix'Libravatar Junio C Hamano1-0/+4
* mm/mediawiki-author-fix: git-remote-mediawiki: don't include HTTP login/password in author
2011-10-26Merge branch 'jn/libperl-git-config'Libravatar Junio C Hamano3-65/+33
* jn/libperl-git-config: Add simple test for Git::config_path() in t/t9700-perl-git.sh libperl-git: refactor Git::config_*
2011-10-26Merge branch 'jm/maint-gitweb-filter-forks-fix'Libravatar Junio C Hamano1-1/+1
* jm/maint-gitweb-filter-forks-fix: gitweb: fix regression when filtering out forks
2011-10-26Merge branch 'cn/fetch-prune'Libravatar Junio C Hamano5-55/+137
* cn/fetch-prune: fetch: treat --tags like refs/tags/*:refs/tags/* when pruning fetch: honor the user-provided refspecs when pruning refs remote: separate out the remote_find_tracking logic into query_refspecs t5510: add tests for fetch --prune fetch: free all the additional refspecs Conflicts: remote.c
2011-10-26Merge branch 'jn/gitweb-highlite-sanitise' into maintLibravatar Junio C Hamano1-1/+13
* jn/gitweb-highlite-sanitise: gitweb: Strip non-printable characters from syntax highlighter output
2011-10-26Merge branch 'jk/argv-array' into maintLibravatar Junio C Hamano11-107/+261
* jk/argv-array: run_hook: use argv_array API checkout: use argv_array API bisect: use argv_array API quote: provide sq_dequote_to_argv_array refactor argv_array into generic code quote.h: fix bogus comment add sha1_array API docs
2011-10-26Merge branch 'jc/run-receive-hook-cleanup' into maintLibravatar Junio C Hamano1-19/+52
* jc/run-receive-hook-cleanup: refactor run_receive_hook()
2011-10-26Merge branch 'cn/eradicate-working-copy' into maintLibravatar Junio C Hamano4-6/+6
* cn/eradicate-working-copy: Remove 'working copy' from the documentation and C code
2011-10-26Merge branch 'maint-1.7.6' into maintLibravatar Junio C Hamano10-93/+166
* maint-1.7.6: notes_merge_commit(): do not pass temporary buffer to other function gitweb: Fix links to lines in blobs when javascript-actions are enabled mergetool: no longer need to save standard input mergetool: Use args as pathspec to unmerged files t9159-*.sh: skip for mergeinfo test for svn <= 1.4 date.c: Support iso8601 timezone formats remote: only update remote-tracking branch if updating refspec remote rename: warn when refspec was not updated remote: "rename o foo" should not rename ref "origin/bar" remote: write correct fetch spec when renaming remote 'remote'
2011-10-26Merge branch 'mh/maint-notes-merge-pathbuf-fix' into maint-1.7.6Libravatar Junio C Hamano1-1/+2
* mh/maint-notes-merge-pathbuf-fix: notes_merge_commit(): do not pass temporary buffer to other function
2011-10-26Merge branch 'ps/gitweb-js-with-lineno' into maint-1.7.6Libravatar Junio C Hamano1-4/+4
* ps/gitweb-js-with-lineno: gitweb: Fix links to lines in blobs when javascript-actions are enabled
2011-10-26Merge branch 'jm/mergetool-pathspec' into maint-1.7.6Libravatar Junio C Hamano3-70/+71
* jm/mergetool-pathspec: mergetool: no longer need to save standard input mergetool: Use args as pathspec to unmerged files
2011-10-26Merge branch 'mz/remote-rename' into maint-1.7.6Libravatar Junio C Hamano2-7/+52
* mz/remote-rename: remote: only update remote-tracking branch if updating refspec remote rename: warn when refspec was not updated remote: "rename o foo" should not rename ref "origin/bar" remote: write correct fetch spec when renaming remote 'remote'
2011-10-26Merge branch 'rj/maint-t9159-svn-rev-notation' into maint-1.7.6Libravatar Junio C Hamano1-0/+8
* rj/maint-t9159-svn-rev-notation: t9159-*.sh: skip for mergeinfo test for svn <= 1.4
2011-10-26Merge branch 'hl/iso8601-more-zone-formats' into maint-1.7.6Libravatar Junio C Hamano2-11/+29
* hl/iso8601-more-zone-formats: date.c: Support iso8601 timezone formats
2011-10-26Merge branch 'maint-1.7.6' into maintLibravatar Junio C Hamano7-32/+46
* maint-1.7.6: make the sample pre-commit hook script reject names with newlines, too git-read-tree.txt: update sparse checkout examples git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr Documentation/git-update-index: refer to 'ls-files' Documentation: basic configuration of notes.rewriteRef
2011-10-26Merge branch 'tr/doc-note-rewrite' into maint-1.7.6Libravatar Junio C Hamano1-1/+2
* tr/doc-note-rewrite: Documentation: basic configuration of notes.rewriteRef
2011-10-26Merge branch 'nd/sparse-doc' into maint-1.7.6Libravatar Junio C Hamano1-2/+2
* nd/sparse-doc: git-read-tree.txt: update sparse checkout examples
2011-10-26Merge branch 'mg/maint-doc-sparse-checkout' into maint-1.7.6Libravatar Junio C Hamano4-25/+31
* mg/maint-doc-sparse-checkout: git-read-tree.txt: correct sparse-checkout and skip-worktree description git-read-tree.txt: language and typography fixes unpack-trees: print "Aborting" to stderr
2011-10-26Merge branch 'maint-1.7.5' into maint-1.7.6Libravatar Junio C Hamano3-5/+12
* maint-1.7.5: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files'
2011-10-26Merge branch 'maint-1.7.4' into maint-1.7.5Libravatar Junio C Hamano3-5/+12
* maint-1.7.4: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files'
2011-10-26Merge branch 'maint-1.7.3' into maint-1.7.4Libravatar Junio C Hamano3-5/+12
* maint-1.7.3: make the sample pre-commit hook script reject names with newlines, too Reindent closing bracket using tab instead of spaces Documentation/git-update-index: refer to 'ls-files'
2011-10-26Merge branch 'sn/doc-update-index-assume-unchanged' into maint-1.7.3Libravatar Junio C Hamano1-2/+5
* sn/doc-update-index-assume-unchanged: Documentation/git-update-index: refer to 'ls-files'
2011-10-26read-cache.c: fix index memory allocationLibravatar René Scharfe2-3/+53
estimate_cache_size() tries to guess how much memory is needed for the in-memory representation of an index file. It does that by using the file size, the number of entries and the difference of the sizes of the on-disk and in-memory structs -- without having to check the length of the name of each entry, which varies for each entry, but their sums are the same no matter the representation. Except there can be a difference. First of all, the size is really calculated by ce_size and ondisk_ce_size based on offsetof(..., name), not sizeof, which can be different. And entries are padded with 1 to 8 NULs at the end (after the variable name) to make their total length a multiple of eight. So in order to allocate enough memory to hold the index, change the delta calculation to be based on offsetof(..., name) and round up to the next multiple of eight. On a 32-bit Linux, this delta was used before: sizeof(struct cache_entry) == 72 sizeof(struct ondisk_cache_entry) == 64 --- 8 The actual difference for an entry with a filename length of one was, however (find the definitions are in cache.h): offsetof(struct cache_entry, name) == 72 offsetof(struct ondisk_cache_entry, name) == 62 ce_size == (72 + 1 + 8) & ~7 == 80 ondisk_ce_size == (62 + 1 + 8) & ~7 == 64 --- 16 So eight bytes less had been allocated for such entries. The new formula yields the correct delta: (72 - 62 + 7) & ~7 == 16 Reported-by: John Hsing <tsyj2007@gmail.com> Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26make the sample pre-commit hook script reject names with newlines, tooLibravatar Jim Meyering1-2/+6
The sample pre-commit hook script would fail to reject a file name like "a\nb" because of the way newlines are handled in "$(...)". Adjust the test to count filtered bytes and require there be 0. Also print all diagnostics to standard error, not stdout, so they will actually be seen. Signed-off-by: Jim Meyering <meyering@redhat.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26completion: fix issue with process substitution not working on Git for WindowsLibravatar Stefan Naewe1-1/+2
Git for Windows comes with a bash that doesn't support process substitution. It issues the following error when using git-completion.bash with GIT_PS1_SHOWUPSTREAM set: $ export GIT_PS1_SHOWUPSTREAM=1 sh.exe": cannot make pipe for process substitution: Function not implemented sh.exe": cannot make pipe for process substitution: Function not implemented sh.exe": <(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n '): ambiguous redirect Replace the process substitution with a 'here string'. Signed-off-by: Stefan Naewe <stefan.naewe@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26gitweb/Makefile: Remove static/gitweb.js in the clean targetLibravatar Ramsay Jones1-1/+3
Since 9a86dd5 (gitweb: Split JavaScript for maintability, combining on build, 2011-04-28), static/gitweb.js has been a build product that should be cleaned upon "make clean". Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26builtin/grep: simplify lock_and_read_sha1_file()Libravatar Junio C Hamano1-7/+3
As read_sha1_lock/unlock have been made aware of use_threads, this caller can be made a lot simpler. Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26builtin/grep: make lock/unlock into static inline functionsLibravatar Junio C Hamano1-5/+23
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-26git grep: be careful to use mutexes only when they are initializedLibravatar Johannes Schindelin1-4/+5
Rather nasty things happen when a mutex is not initialized but locked nevertheless. Now, when we're not running in a threaded manner, the mutex is not initialized, which is correct. But then we went and used the mutex anyway, which -- at least on Windows -- leads to a hard crash (ordinarily it would be called a segmentation fault, but in Windows speak it is an access violation). This problem was identified by our faithful tests when run in the msysGit environment. To avoid having to wrap the line due to the 80 column limit, we use the name "WHEN_THREADED" instead of "IF_USE_THREADS" because it is one character shorter. Which is all we need in this case. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-23Merge branch 'maint'Libravatar Junio C Hamano1-1/+1
* maint: Reindent closing bracket using tab instead of spaces
2011-10-23Merge branch 'maint-1.7.3' into maintLibravatar Junio C Hamano1-1/+1
* maint-1.7.3: Reindent closing bracket using tab instead of spaces
2011-10-23Reindent closing bracket using tab instead of spacesLibravatar Nguyễn Thái Ngọc Duy1-1/+1
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-10-23Merge branch 'maint'Libravatar Junio C Hamano2-3/+5
* maint: Git 1.7.7.1 RelNotes/1.7.7.1: setgid bit patch is about fixing "git init" via Makefile setting Conflicts: GIT-VERSION-GEN