summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Rename t3900 test vector fileJunio C Hamano2006-12-272-5/+5
| | | | | | | | It appears ISO-2022-JP is more widely accepted than ISO2022JP, so rename it that way. We probably would need to have a way to skip this test altogether in locale-challenged environments. Signed-off-by: Junio C Hamano <junkio@cox.net>
* UTF-8: introduce i18n.logoutputencoding.Junio C Hamano2006-12-2715-23/+160
| | | | | | | | | | | | | | | | It is plausible for somebody to want to view the commit log in a different encoding from i18n.commitencoding -- the project's policy may be UTF-8 and the user may be using a commit message hook to run iconv to conform to that policy (and either not have i18n.commitencoding to default to UTF-8 or have it explicitly set to UTF-8). Even then, Latin-1 may be more convenient for the usual pager and the terminal the user uses. The new variable i18n.logoutputencoding is used in preference to i18n.commitencoding to decide what encoding to recode the log output in when git-log and friends formats the commit log message. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Teach log family --encodingJunio C Hamano2006-12-263-5/+76
| | | | | | | | | | | | | | Updated commit objects record the encoding used in their encoding header. This updates the log family to reencode it into the encoding specified in i18n.commitencoding (or the default, which is "utf-8") upon output. To force a specific encoding that is different, log family takes command line flag --encoding=<encoding>; giving --encoding=none entirely disables the reencoding and lets you view log messges in their original encoding. Signed-off-by: Junio C Hamano <junkio@cox.net>
* i18n.logToUTF8: convert commit log message to UTF-8Junio C Hamano2006-12-261-2/+9
| | | | | | | | | | | | When i18n.commitencoding is set to a non UTF-8 encoding, commit-tree records the encoding in an extra header after author/committer headers in the commit object. An earlier version used trailer but Johannes points out that there is little risk breaking existing Porcelains with a new header. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Move encoding conversion routine out of mailinfo to utf8.cJunio C Hamano2006-12-263-30/+69
| | | | | | | This moves the body of convert_to_utf8() routine used in mailinfo to the utf8.c i18n library. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Document git-reset <commit> -- <paths>...Junio C Hamano2006-12-261-3/+9
|
* Document --numstat in git-apply and git-diffJunio C Hamano2006-12-262-3/+6
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* show-branch --reflog: add documentation.Junio C Hamano2006-12-261-0/+5
| | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* add .mailmap for git-shortlog output with the git repositoryNicolas Pitre2006-12-251-0/+37
| | | | | | | The git repository itself was messed up in a couple cases. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* GIT v1.5.0 previewv1.5.0-rc0Junio C Hamano2006-12-251-1/+1
| | | | | | | | This is not yet -rc1 where all new topics closes, but I think it is getting pretty closer. I'd still want to merge updates to fsck/prune to honor reflog entries before -rc1. Signed-off-by: Junio C Hamano <junkio@cox.net>
* Merge branch 'jc/bm'Junio C Hamano2006-12-251-2/+6
|\ | | | | | | | | * jc/bm: Allow branch.*.merge to talk about remote tracking branches.
| * Allow branch.*.merge to talk about remote tracking branches.Junio C Hamano2006-12-241-2/+6
| | | | | | | | | | | | | | | | People often get confused if the value of branch.*.merge should be the remote branch name they are fetching from, or the tracking branch they locally have. So this allows either. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'rf/web'Junio C Hamano2006-12-251-96/+107
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rf/web: gitweb: Use rev-list --skip option. gitweb: Change history action to use parse_commits. gitweb: Change atom, rss actions to use parse_commits. gitweb: Change header search action to use parse_commits. gitweb: Change log action to use parse_commits. gitweb: Change summary, shortlog actions to use parse_commits. gitweb: We do longer need the --parents flag in rev-list. gitweb: Add parse_commits, used to bulk load commit objects.
| * | gitweb: Use rev-list --skip option.Robert Fitzsimons2006-12-251-23/+1
| | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Change history action to use parse_commits.Robert Fitzsimons2006-12-251-18/+9
| | | | | | | | | | | | | | | | | | | | | Also added missing accesskey. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Change atom, rss actions to use parse_commits.Robert Fitzsimons2006-12-251-11/+7
| | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Change header search action to use parse_commits.Robert Fitzsimons2006-12-251-14/+9
| | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Change log action to use parse_commits.Robert Fitzsimons2006-12-251-11/+14
| | | | | | | | | | | | | | | | | | | | | Also add missing next link to bottom of page. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Change summary, shortlog actions to use parse_commits.Robert Fitzsimons2006-12-251-22/+12
| | | | | | | | | | | | | | | | | | | | | Also added missing accesskey. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: We do longer need the --parents flag in rev-list.Robert Fitzsimons2006-12-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We only want to know the direct parents of a given commit object, these parents are available in the --header output of rev-list. If --parents is supplied with --full-history the output includes merge commits that aren't relevant. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | gitweb: Add parse_commits, used to bulk load commit objects.Robert Fitzsimons2006-12-251-17/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | Add a new method parse_commits which is able to parse multiple commit objects at once. Reworked parse_commit to share the commit object parsing logic. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-add -f: allow adding otherwise ignored files.Junio C Hamano2006-12-252-7/+35
| | | | | | | | | | | | | | | | | | | | | Instead of just warning, refuse to add otherwise ignored files by default, and allow it with an -f option. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-add: warn when adding an ignored file with an explicit request.Junio C Hamano2006-12-251-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | We allow otherwise ignored paths to be added to the index by spelling its path out on the command line, but we would warn the user about them when we do so. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-add: add ignored files when asked explicitly.Junio C Hamano2006-12-252-4/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One thing many people found confusing about git-add was that a file whose name matches an ignored pattern could not be added to the index. With this, such a file can be added by explicitly spelling its name to git-add. Fileglobs and recursive behaviour do not add ignored files to the index. That is, if a pattern '*.o' is in .gitignore, and two files foo.o, bar/baz.o are in the working tree: $ git add foo.o $ git add '*.o' $ git add bar Only the first form adds foo.o to the index. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | read_directory: show_both option.Junio C Hamano2006-12-252-9/+16
| | | | | | | | | | | | | | | | | | | | | This teaches the internal read_directory() routine to return both interesting and ignored pathnames. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-rm: DocumentationJunio C Hamano2006-12-251-24/+27
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | t3600: update the test for updated git rmJunio C Hamano2006-12-251-4/+74
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | git-rm: update to saner semanticsJunio C Hamano2006-12-251-20/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates the "git rm" command with saner semantics suggested on the list earlier with: Message-ID: <Pine.LNX.4.64.0612020919400.3476@woody.osdl.org> Message-ID: <Pine.LNX.4.64.0612040737120.3476@woody.osdl.org> The command still validates that the given paths all talk about sensible paths to avoid mistakes (e.g. "git rm fiel" when file "fiel" does not exist would error out -- user meant to remove "file"), and it has further safety checks described next. The biggest difference is that the paths are removed from both index and from the working tree (if you have an exotic need to remove paths only from the index, you can use the --cached option). The command refuses to remove if the copy on the working tree does not match the index, or if the index and the HEAD does not match. You can defeat this check with -f option. This safety check has two exceptions: if the working tree file does not exist to begin with, that technically does not match the index but it is allowed. This is to allow this CVS style command sequence: rm <path> && git rm <path> Also if the index is unmerged at the <path>, you can use "git rm <path>" to declare that the result of the merge loses that path, and the above safety check does not trigger; requiring the file to match the index in this case forces the user to do "git update-index file && git rm file", which is just crazy. To recursively remove all contents from a directory, you need to pass -r option, not just the directory name as the <path>. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | match_pathspec() -- return how well the spec matchedJunio C Hamano2006-12-252-16/+39
|/ / | | | | | | | | | | | | | | | | | | | | This updates the return value from match_pathspec() so that the caller can tell cases between exact match, leading pathname match (i.e. file "foo/bar" matches a pathspec "foo"), or filename glob match. This can be used to prevent "rm dir" from removing "dir/file" without explicitly asking for recursive behaviour with -r flag, for example. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | Merge branch 'jc/skip-count'Junio C Hamano2006-12-254-14/+89
|\ \ | | | | | | | | | | | | * jc/skip-count: revision: --skip=<n>
| * | revision: --skip=<n>Junio C Hamano2006-12-204-14/+89
| | | | | | | | | | | | | | | | | | | | | | | | This adds --skip=<n> option to revision traversal machinery. Documentation and test were added by Robert Fitzsimons. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'jc/git-add--interactive'Junio C Hamano2006-12-255-2/+940
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | * jc/git-add--interactive: git-add --interactive: add documentation git-add --interactive: hunk splitting git-add --interactive
| * | git-add --interactive: add documentationJunio C Hamano2006-12-252-2/+119
| | | | | | | | | | | | Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | git-add --interactive: hunk splittingJunio C Hamano2006-12-181-8/+242
| | | | | | | | | | | | | | | | | | | | | | | | This adds hunk splitting and recounting the patch lines. The 'patch' subcommand now allows you to split a large hunk at context lines in the middle. Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | git-add --interactiveJunio C Hamano2006-12-184-0/+587
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A script to be driven when the user says "git add --interactive" is introduced. When it is run, first it runs its internal 'status' command to show the current status, and then goes into its internactive command loop. The command loop shows the list of subcommands available, and gives a prompt "What now> ". In general, when the prompt ends with a single '>', you can pick only one of the choices given and type return, like this: *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help What now> 1 You also could say "s" or "sta" or "status" above as long as the choice is unique. The main command loop has 6 subcommands (plus help and quit). * 'status' shows the change between HEAD and index (i.e. what will be committed if you say "git commit"), and between index and working tree files (i.e. what you could stage further before "git commit" using "git-add") for each path. A sample output looks like this: staged unstaged path 1: binary nothing foo.png 2: +403/-35 +1/-1 git-add--interactive.perl It shows that foo.png has differences from HEAD (but that is binary so line count cannot be shown) and there is no difference between indexed copy and the working tree version (if the working tree version were also different, 'binary' would have been shown in place of 'nothing'). The other file, git-add--interactive.perl, has 403 lines added and 35 lines deleted if you commit what is in the index, but working tree file has further modifications (one addition and one deletion). * 'update' shows the status information and gives prompt "Update>>". When the prompt ends with double '>>', you can make more than one selection, concatenated with whitespace or comma. Also you can say ranges. E.g. "2-5 7,9" to choose 2,3,4,5,7,9 from the list. You can say '*' to choose everything. What you chose are then highlighted with '*', like this: staged unstaged path 1: binary nothing foo.png * 2: +403/-35 +1/-1 git-add--interactive.perl To remove selection, prefix the input with - like this: Update>> -2 After making the selection, answer with an empty line to stage the contents of working tree files for selected paths in the index. * 'revert' has a very similar UI to 'update', and the staged information for selected paths are reverted to that of the HEAD version. Reverting new paths makes them untracked. * 'add untracked' has a very similar UI to 'update' and 'revert', and lets you add untracked paths to the index. * 'patch' lets you choose one path out of 'status' like selection. After choosing the path, it presents diff between the index and the working tree file and asks you if you want to stage the change of each hunk. You can say: y - add the change from that hunk to index n - do not add the change from that hunk to index a - add the change from that hunk and all the rest to index d - do not the change from that hunk nor any of the rest to index j - do not decide on this hunk now, and view the next undecided hunk J - do not decide on this hunk now, and view the next hunk k - do not decide on this hunk now, and view the previous undecided hunk K - do not decide on this hunk now, and view the previous hunk After deciding the fate for all hunks, if there is any hunk that was chosen, the index is updated with the selected hunks. * 'diff' lets you review what will be committed (i.e. between HEAD and index). This is still rough, but does everything except a few things I think are needed. * 'patch' should be able to allow splitting a hunk into multiple hunks. * 'patch' does not adjust the line offsets @@ -k,l +m,n @@ in the hunk header. This does not have major problem in practice, but it _should_ do the adjustment. * It does not have any explicit support for a merge in progress; it may not work at all. Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | Merge branch 'sb/merge-friendly'Junio C Hamano2006-12-243-6/+23
|\ \ \ | | | | | | | | | | | | | | | | | | | | * sb/merge-friendly: Display 'theirs' branch name when possible in merge. Use extended SHA1 syntax in merge-recursive conflicts.
| * | | Display 'theirs' branch name when possible in merge.Shawn O. Pearce2006-12-233-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Displaying the SHA1 of 'their' branch (the branch being merged into the current branch) is not nearly as friendly as just displaying the name of that branch, especially if that branch is already local to this repository. git-merge now sets the environment variable 'GITHEAD_%(sha1)=%(name)' for each argument it gets passed, making the actual input name that resolved to the commit '%(sha1)' easily available to the invoked merge strategy. git-merge-recursive makes use of these environment variables when they are available by using '%(name)' whenever it outputs the commit identification rather than '%(sha1)'. This is most obvious in the conflict hunks created by xdl_merge: $ git mege sideb~1 <<<<<<< HEAD:INSTALL Good! ======= Oops. >>>>>>> sideb~1:INSTALL [jc: adjusted a test script and a minor constness glitch.] Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | Use extended SHA1 syntax in merge-recursive conflicts.Shawn O. Pearce2006-12-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we get a line-level conflict in merge-recursive and print out the two sides in the conflict hunk header and footer we should use the standard extended SHA1 syntax to specify the specific blob, as this allows the user to copy and paste the line right into 'git show' to view the complete version. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | Merge branch 'js/rerere'Junio C Hamano2006-12-248-19/+585
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * js/rerere: Make git-rerere a builtin Add a test for git-rerere move read_mmfile() into xdiff-interface
| * | | | Make git-rerere a builtinJohannes Schindelin2006-12-214-1/+409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The perl version used modules which are non-standard in some setups. This patch brings the full power of rerere to a wider audience. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | Add a test for git-rerereJohannes Schindelin2006-12-211-0/+154
| | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
| * | | | move read_mmfile() into xdiff-interfaceJohannes Schindelin2006-12-213-18/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | read_file() was a useful function if you want to work with the xdiff stuff, so it was renamed and put into a more central place. Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | commit-tree: encourage UTF-8 commit messages.Johannes Schindelin2006-12-244-4/+303
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce is_utf() to check if a text looks like it is encoded in UTF-8, utf8_width() to count display width, and implements print_wrapped_text() using them. git-commit-tree warns if the commit message does not minimally conform to the UTF-8 encoding when i18n.commitencoding is either unset, or set to "utf-8". Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Switch git_mmap to use pread.Shawn O. Pearce2006-12-241-14/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that Git depends on pread in index-pack its safe to say we can also depend on it within the git_mmap emulation we activate when NO_MMAP is set. On most systems pread should be slightly faster than an lseek/read/lseek sequence as its one system call vs. three system calls. We also now honor EAGAIN and EINTR error codes from pread and restart the prior read. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Rename gitfakemmap to git_mmap.Shawn O. Pearce2006-12-242-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This minor cleanup was suggested by Johannes Schindelin. The mmap is still fake in the sense that we don't support PROT_WRITE or MAP_SHARED with external modification at all, but that hasn't stopped us from using mmap() thoughout the Git code. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | gitweb: Paginate commit/author/committer search outputRobert Fitzsimons2006-12-231-45/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Paginate commit/author/committer search output to only show 100 commits at a time, added appropriate nav links. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | | Makefile: add quick-install-doc for installing pre-built manpagesEric Wong2006-12-233-0/+37
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds and uses the install-doc-quick.sh file to Documentation/, which is usable for people who track either the 'html' or 'man' heads in Junio's repository (prefixed with 'origin/' if cloned locally). You may override this by specifying DOC_REF in the make environment or in config.mak. GZ may also be set in the environment (or config.mak) if you wish to gzip the documentation after installing it. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Allow search to be disabled from the config file.Robert Fitzsimons2006-12-221-0/+13
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Require a minimum of two character for the search text.Robert Fitzsimons2006-12-221-0/+3
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>
* | | | gitweb: Use rev-list pattern search options.Robert Fitzsimons2006-12-221-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use rev-list pattern search options instead of hand coded perl. Signed-off-by: Robert Fitzsimons <robfitz@273k.net> Signed-off-by: Junio C Hamano <junkio@cox.net>