summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'sp/reflog' into nextJunio C Hamano2006-05-2325-248/+704
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sp/reflog: 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.
| * Merge part of 'js/fmt-patch' for RFC2822 dates into 'sp/reflog'Junio C Hamano2006-05-198-19/+121
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An earlier patch from Shawn Pearce dependes on a change that is only in "next". I do not want to make this series hostage to the yet-to-graduate js/fmt-patch branch, but let's try fixing it by merging the early parts of the branch to see what happens. Right now, 'sp/reflog' will not be in "next" for now, so I won't have to regret this -- if this merge causes problem down the road merging I can always rebuild the topic branch ;-).
| * | Enable ref log creation in git checkout -b.Shawn Pearce2006-05-192-5/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch git checkout -b to use git-update-ref rather than echo and a shell I/O redirection. This is more in line with typical GIT commands and allows -b to be logged according to the normal ref logging rules. Added -l option to allow users to create the ref log at the same time as creating a branch. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Create/delete branch ref logs.Shawn Pearce2006-05-192-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When crating a new branch offer '-l' as a way for the user to quickly enable ref logging for the new branch. When deleting a branch also delete its ref log. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Include ref log detail in commit, reset, etc.Shawn Pearce2006-05-195-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | When updating a ref at the direction of the user include a reason why head was changed as part of the ref log (assuming it was enabled). Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Change order of -m option to update-ref.Shawn Pearce2006-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The actual position doesn't matter but most people prefer to see options appear before the arguments. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Correct force_write bug in refs.cShawn Pearce2006-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | My earlier attempt at forcing a write for non-existant refs worked; it forced a write for pretty much all refs. This corrects the condition to only force a write for refs which don't exist yet. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Change 'master@noon' syntax to 'master@{noon}'.Shawn Pearce2006-05-193-31/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Its ambiguous to parse "master@2006-05-17 18:30:foo" when foo is meant as a file name and ":30" is meant as 30 minutes past 6 pm. Therefore all date specifications in a sha1 expression must now appear within brackets and the ':' splitter used for the path name in a sha1 expression ignores ':' appearing within brackets. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Log ref updates made by fetch.Shawn Pearce2006-05-196-4/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If a ref is changed by http-fetch, local-fetch or ssh-fetch record the change and the remote URL/name in the log for the ref. This requires loading the config file to check logAllRefUpdates. Also fixed a bug in the ref lock generation; the log file name was not being produced right due to a bad prefix length. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Force writing ref if it doesn't exist.Shawn Pearce2006-05-192-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Normally we try to skip writing a ref if its value hasn't changed but in the special case that the ref doesn't exist but the new value is going to be 0{40} then force writing the ref anyway. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Added logs/ directory to repository layout.Shawn Pearce2006-05-191-0/+11
| | | | | | | | | | | | | | | Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | General ref log reading improvements.Shawn Pearce2006-05-192-14/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Corrected the log starting time displayed in the error message (as it was always showing the epoch due to a bad input to strtoul). Improved the log parser so we only scan backwards towards the '\n' from the end of the prior log; during this scan the last '>' is remembered to improve performance (rather than scanning forward to it). If the log record matched is the last log record in the file only use its new sha1 value if the date matches exactly; otherwise we leave the passed in sha1 alone as it already contains the current value of the ref. This way lookups of dates later than the log end to stick with the current ref value in case the ref was updated without logging. If it looks like someone changed the ref without logging it and we are going to return the sha1 which should have been valid during the missing period then warn the user that there might be log data missing and thus their query result may not be accurate. The check isn't perfect as its just based on comparing the old and new sha1 values between the two log records but its better than not checking at all. Implemented test cases based on git-rev-parse for most of the boundary conditions. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Fix ref log parsing so it works properly.Shawn Pearce2006-05-172-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The log parser was only ever matching the last log record due to calling strtoul on "> 1136091609" rather than " 1136091609". Also once a match for '@' has been found after the name of the ref there is no point in looking for another '@' within the remaining text. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Support 'master@2 hours ago' syntaxShawn Pearce2006-05-174-17/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extended sha1 expressions may now include date specifications which indicate a point in time within the local repository's history. If the ref indicated to the left of '@' has a log in $GIT_DIR/logs/<ref> then the value of the ref at the time indicated by the specification is obtained from the ref's log. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Log ref updates to logs/refs/<ref>Shawn Pearce2006-05-178-0/+210
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If config parameter core.logAllRefUpdates is true or the log file already exists then append a line to ".git/logs/refs/<ref>" whenever git-update-ref <ref> is executed. Each log line contains the following information: oldsha1 <SP> newsha1 <SP> committer <LF> where committer is the current user, date, time and timezone in the standard GIT ident format. If the caller is unable to append to the log file then git-update-ref will fail without updating <ref>. An optional message may be included in the log line with the -m flag. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Convert update-ref to use ref_lock API.Shawn Pearce2006-05-172-67/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | This conversion also adds the '-m' switch to update-ref allowing the caller to record why the ref is changing. At present this is merely copied down into the ref_lock API. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | Improve abstraction of ref lock/write.Shawn Pearce2006-05-173-148/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Created 'struct ref_lock' to contain the data necessary to perform a ref update. This change improves writing a ref as the file names are generated only once (rather than twice) and supports following symrefs (up to the maximum depth). Further the ref_lock structure provides room to extend the update API with ref logging. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'eb/mailinfo' into nextJunio C Hamano2006-05-231-65/+59
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * eb/mailinfo: Allow in body headers beyond the in body header prefix. More accurately detect header lines in read_one_header_line In handle_body only read a line if we don't already have one. Refactor commit messge handling. Move B and Q decoding into check header. Make read_one_header_line return a flag not a length.
| * | | Allow in body headers beyond the in body header prefix.Eric W. Biederman2006-05-231-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - handle_from is fixed to not mangle it's input line. - Then handle_inbody_header is allowed to look in the body of a commit message for additional headers that we haven't already seen. This allows patches with all of the right information in unfortunate places to be imported. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | More accurately detect header lines in read_one_header_lineEric W. Biederman2006-05-231-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Only count lines of the form '^.*: ' and '^From ' as email header lines. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | In handle_body only read a line if we don't already have one.Eric W. Biederman2006-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prepares for detecting non-email patches that don't have mail headers. In which case we have already read the first line so handle_body should not ignore it. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Refactor commit messge handling.Eric W. Biederman2006-05-231-36/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move handle_info into main so it is called once after everything has been parsed. This allows the removal of a static variable and removes two duplicate calls. - Move parsing of inbody headers into handle_commit. This means we parse the in-body headers after we have decoded the character set, and it removes code duplication between handle_multipart_one_part and handle_body. - Change the flag indicating that we have seen an in body prefix header into another bit in seen. This is a little more general and allows the possibility of parsing in body headers after the body message has begun. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Move B and Q decoding into check header.Eric W. Biederman2006-05-231-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | B and Q decoding is not appropriate for in body headers, so move it up to where we explicitly know we have a real email header. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Make read_one_header_line return a flag not a length.Eric W. Biederman2006-05-231-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently we only use the return value from read_one_header line to tell if the line we have read is a header or not. So make it a flag. This paves the way for better email detection. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'be/tag' into nextJunio C Hamano2006-05-233-31/+61
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | * be/tag: add more informative error messages to git-mktag remove the artificial restriction tagsize < 8kb
| * | | | add more informative error messages to git-mktagBjörn Engelmann2006-05-231-11/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Björn Engelmann <BjEngelmann@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | remove the artificial restriction tagsize < 8kbBjörn Engelmann2006-05-233-20/+46
| |/ / / | | | | | | | | | | | | | | | | Signed-off-by: Björn Engelmann <BjEngelmann@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'jc/builtin-n-tar-tree' into nextJunio C Hamano2006-05-2314-27/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * jc/builtin-n-tar-tree: Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree. Builtin git-show-branch. Builtin git-apply. Builtin git-commit-tree. Builtin git-read-tree. Builtin git-tar-tree. Builtin git-ls-tree. Builtin git-ls-files.
| * \ \ \ Merge branch 'jc/tartree' into jc/builtin-n-tar-treeJunio C Hamano2006-05-235-8/+143
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * jc/tartree: built-in tar-tree and remote tar-tree
| * | | | | Builtin git-diff-files, git-diff-index, git-diff-stages, and git-diff-tree.Peter Eriksen2006-05-237-11/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-show-branch.Peter Eriksen2006-05-234-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-apply.Peter Eriksen2006-05-234-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-commit-tree.Peter Eriksen2006-05-234-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-read-tree.Peter Eriksen2006-05-234-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-tar-tree.Peter Eriksen2006-05-234-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-ls-tree.Peter Eriksen2006-05-234-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Builtin git-ls-files.Peter Eriksen2006-05-234-5/+8
| | |/ / / | |/| | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Merge branch 'jc/dirwalk-n-cache-tree' into nextJunio C Hamano2006-05-231-0/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | * jc/dirwalk-n-cache-tree: builtin-rm: squelch compiler warnings.
| * | | | | builtin-rm: squelch compiler warnings.Junio C Hamano2006-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | | Merge branch 'master' into nextJunio C Hamano2006-05-233-127/+117
|\ \ \ \ \ \ | | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master: Add git-quiltimport to .gitignore. cvsimport: introduce _fetchfile() method and used a 1M buffer to read() cvsimport: cleanup commit function cvsimport: use git-update-index --index-info git status: skip empty directories, and add -u to show all untracked files cvsimport: repack every kilo-commits. cvsimport: introduce -L<imit> option to workaround memory leaks
| * | | | | Add git-quiltimport to .gitignore.Peter Eriksen2006-05-231-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Eriksen <s022018@student.dtu.dk> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | cvsimport: introduce _fetchfile() method and used a 1M buffer to read()Martin Langhoff2006-05-231-17/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | File retrieval from the socket is now moved to _fetchfile() and we now cap reads at 1MB. This should limit the memory growth of the cvsimport process. Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | cvsimport: cleanup commit functionJeff King2006-05-231-86/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change attempts to clean up the commit function to make it a bit easier to read (or at least the first half of it). It also improves robustness and performance. Specifically: - report get_headref errors on opening ref unless the error is ENOENT - use regex to check for sha1 instead of length - use lexically scoped filehandles which get cleaned up automagically - check for error on both 'print' and 'close' (since output is buffered) - avoid "fork, do some perl, then exec" in commit(). It's not necessary, and we probably end up COW'ing parts of the perl process. Plus the code is much smaller because we can use open2() - avoid calling strftime over and over (mainly a readability cleanup) Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | cvsimport: use git-update-index --index-infoJeff King2006-05-231-23/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should reduce the number of git-update-index forks required per commit. We now do adds/removes in one call, and we are no longer forced to deal with argv limitations. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | git status: skip empty directories, and add -u to show all untracked filesMatthias Lederhofer2006-05-231-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default, we use --others --directory to show uninteresting directories (to get user's attention) without their contents (to unclutter output). Showing empty directories do not make sense, so pass --no-empty-directory when we do so. Giving -u (or --untracked) disables this uncluttering to let the user get all untracked files. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | cvsimport: repack every kilo-commits.Linus Torvalds2006-05-231-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Linus Torvalds <torvalds@osdl.org> Acked-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | cvsimport: introduce -L<imit> option to workaround memory leaksMartin Langhoff2006-05-231-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Martin Langhoff <martin@catalyst.net.nz> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | | Merge branch 'se/http' into nextJunio C Hamano2006-05-228-13/+22
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * se/http: Remove possible segfault in http-fetch. Install git builtins into gitexecdir rather than bindir. Change GIT-VERSION-GEN to call git commands with "git" not "git-". cvsimport: replace anonymous sub ref with a normal sub cvsimport: minor fixups Problem: 'trap...exit' causes error message when /bin/sh is ash. Avoid segfault in diff --stat rename output. Tutorial #2: broken link fix. git help: remove whatchanged from list of common commands
| * | | | | | Remove possible segfault in http-fetch.Sean2006-05-221-2/+2
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Free the curl string lists after running http_cleanup to avoid an occasional segfault in the curl library. Seems to only occur if the website returns a 405 error. Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | | Install git builtins into gitexecdir rather than bindir.Sean2006-05-221-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moving "git-cmd" commands out of the path and into a special git exec path, should include the builtins. [jc: fixed the case where bindir == gitexecdir - ln -f fails with a complaint that src and dst are the same, likewise for the fallback cp.] Signed-off-by: Junio C Hamano <junkio@cox.net>