* [PATCH/RFC 2/2] Remove $tagobjid from tagcontents population
From: Dave Dulson @ 2010-01-10 22:45 UTC (permalink / raw)
To: git; +Cc: Paul Mackerras
When the showtag proc is called directly after the tag has been
created rereadrefs hasn't been called, meaning the tag doesn't exist
in $tagobjid. This causes the cat-file to fail.
Instead of using $tagobjid, pass the $tag directly, ensuring the tag
contents are populated correctly.
Signed-off-by: David Dulson <dave@dulson.com>
---
gitk | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gitk b/gitk
index b34b481..65721e3 100755
--- a/gitk
+++ b/gitk
@@ -10482,7 +10482,7 @@ proc listrefs {id} {
}
proc showtag {tag isnew} {
- global ctext tagcontents tagids linknum tagobjid
+ global ctext tagcontents tagids linknum
if {$isnew} {
addtohistory [list showtag $tag 0] savectextpos
@@ -10493,7 +10493,7 @@ proc showtag {tag isnew} {
set linknum 0
if {![info exists tagcontents($tag)]} {
catch {
- set tagcontents($tag) [exec git cat-file tag $tagobjid($tag)]
+ set tagcontents($tag) [exec git cat-file tag $tag]
}
}
if {[info exists tagcontents($tag)]} {
--
1.6.6.75.g37bae.dirty
^ permalink raw reply related
* [PATCH 1/2] Add tag message
From: Dave Dulson @ 2010-01-10 22:45 UTC (permalink / raw)
To: git; +Cc: Paul Mackerras
Add tag message support to the dialog and exec call
Signed-off-by: David Dulson <dave@dulson.com>
---
gitk | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/gitk b/gitk
index 86dff0f..b34b481 100755
--- a/gitk
+++ b/gitk
@@ -8701,6 +8701,11 @@ proc mktag {} {
${NS}::label $top.tlab -text [mc "Tag name:"]
${NS}::entry $top.tag -width 60
grid $top.tlab $top.tag -sticky w
+ ${NS}::label $top.op -text [mc "Tag message is optional"]
+ grid $top.op -columnspan 2 -sticky we
+ ${NS}::label $top.mlab -text [mc "Tag message:"]
+ ${NS}::entry $top.msg -width 60
+ grid $top.mlab $top.msg -sticky w
${NS}::frame $top.buts
${NS}::button $top.buts.gen -text [mc "Create"] -command mktaggo
${NS}::button $top.buts.can -text [mc "Cancel"] -command mktagcan
@@ -8718,6 +8723,7 @@ proc domktag {} {
set id [$mktagtop.sha1 get]
set tag [$mktagtop.tag get]
+ set msg [$mktagtop.msg get]
if {$tag == {}} {
error_popup [mc "No tag name specified"] $mktagtop
return 0
@@ -8727,7 +8733,11 @@ proc domktag {} {
return 0
}
if {[catch {
- exec git tag $tag $id
+ if {$msg != {}} {
+ exec git tag -a -m "$msg" $tag $id
+ } else {
+ exec git tag $tag $id
+ }
} err]} {
error_popup "[mc "Error creating tag:"] $err" $mktagtop
return 0
--
1.6.6.75.g37bae.dirty
^ permalink raw reply related
* [PATCH] 0/2 Add tag message to gitk
From: Dave Dulson @ 2010-01-10 22:45 UTC (permalink / raw)
To: git; +Cc: Paul Mackerras
It would be nice to be able to create a full tag from gitk, so these
patches add that ability. I'm not sure about 2/2, but can't see what
using $tagobjid adds - hopefully Paul or similar will be able to weigh
in.
Cheers,
Dave
^ permalink raw reply
* Re: How to check new commit availability without full fetch?
From: Nicolas Pitre @ 2010-01-10 21:05 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Leo Razoumov, Git Mailing List
In-Reply-To: <7v8wc5itlc.fsf@alter.siamese.dyndns.org>
On Sun, 10 Jan 2010, Junio C Hamano wrote:
> Nicolas Pitre <nico@fluxnic.net> writes:
>
> >> I am sure I am not the only one with such an itch.
> >
> > Maybe you are. There is very little point knowing that the remote repo
> > has new commits if you're not going to fetch them, so I don't understand
> > why you need this.
>
> A feel good factor is in play? IOW, "I am short of time, so I won't be
> able to really afford to 'git pull' and test the result of re-integrating
> my changes to what happened on the other end. If I can learn that there
> is nothing happening over there, then I won't have to do anything and know
> that I am up to date."
Just do a fetch then. If the fetch progress display looks like if it is
going to take a while then just interrupt it and go home. If the fetch
looks trivial then just merge it. In any case, the "feel good" factor
can't be that great by only knowing if the remote has changed or not.
Well maybe if it hasn't changed then you know right away how to feel
about it (equally with a fetch in that case), and if the remote is
indeed different then you can't tell whether the changes are trivial or
not without actually fetching them.
Nicolas
^ permalink raw reply
* Re: How to check new commit availability without full fetch?
From: Junio C Hamano @ 2010-01-10 20:38 UTC (permalink / raw)
To: Nicolas Pitre; +Cc: Leo Razoumov, Git Mailing List
In-Reply-To: <alpine.LFD.2.00.1001101501520.10143@xanadu.home>
Nicolas Pitre <nico@fluxnic.net> writes:
>> I am sure I am not the only one with such an itch.
>
> Maybe you are. There is very little point knowing that the remote repo
> has new commits if you're not going to fetch them, so I don't understand
> why you need this.
A feel good factor is in play? IOW, "I am short of time, so I won't be
able to really afford to 'git pull' and test the result of re-integrating
my changes to what happened on the other end. If I can learn that there
is nothing happening over there, then I won't have to do anything and know
that I am up to date."
^ permalink raw reply
* Re: "What's cooking" incremental edition
From: Sverre Rabbelier @ 2010-01-10 20:21 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
In-Reply-To: <7vmy0lpwes.fsf@alter.siamese.dyndns.org>
Heya,
On Sun, Jan 10, 2010 at 14:55, Junio C Hamano <gitster@pobox.com> wrote:
> * jn/makefile (2010-01-06) 4 commits
> - - Makefile: consolidate .FORCE-* targets
> - - Makefile: learn to generate listings for targets requiring special flags
> - - Makefile: use target-specific variable to pass flags to cc
> - - Makefile: regenerate assembler listings when asked
> + (merged to 'next' on 2010-01-10 at f5a5d42)
> + + Makefile: consolidate .FORCE-* targets
> + + Makefile: learn to generate listings for targets requiring special flags
> + + Makefile: use target-specific variable to pass flags to cc
> + + Makefile: regenerate assembler listings when asked
Fwiw, I find it harder to read due to the now ambiguous meaning of the
+ and - (it could either mean something is in pu/next, or that the
topic changed). Of course this is partly caused by the fact that I
don't read emails in fixed font (by default), but perhaps it's worth
considering using different symbols for pu/next-ness?
--
Cheers,
Sverre Rabbelier
^ permalink raw reply
* Re: How to check new commit availability without full fetch?
From: Nicolas Pitre @ 2010-01-10 20:13 UTC (permalink / raw)
To: Leo Razoumov; +Cc: Git Mailing List
In-Reply-To: <ee2a733e1001100312j786108fct1b4c8abd0acc5afc@mail.gmail.com>
On Sun, 10 Jan 2010, Leo Razoumov wrote:
> Hi List,
> I am trying to find a way to check availability of new commits
> *before* doing fetch or pull. Unfortunately, neither fetch nor pull
> take "--dry-run" option (unlike push)
But... _Why_ do you want/need to do that?
You could use ls-remote to see what the remote branch is pointing to,
e.g.:
git ls-remote origin master
and compare with the local view of that remote branch:
git show-ref origin/master
And if both SHA1 strings match then there is nothing new to fetch.
> I am sure I am not the only one with such an itch.
Maybe you are. There is very little point knowing that the remote repo
has new commits if you're not going to fetch them, so I don't understand
why you need this.
Nicolas
^ permalink raw reply
* "What's cooking" incremental edition
From: Junio C Hamano @ 2010-01-10 19:55 UTC (permalink / raw)
To: git
This is "git show --ext-diff" output in 'todo' branch (see README.cooking
in the same branch) for today's updates to highlight the updated parts.
-- >8 --
-What's cooking in git.git (Jan 2010, #02; Thu, 07)
+What's cooking in git.git (Jan 2010, #03; Sun, 10)
Here are the topics that have been cooking. Commits prefixed with '-' are
only in 'pu' while commits prefixed with '+' are in 'next'. The ones
marked with '.' do not appear in any of the integration branches, but I am
still holding onto them.
-
-The tip of 'next' has been rebuilt on top of the current 'master'.
--------------------------------------------------
Born topics
[New Topics]
* bk/fix-relative-gitdir-file (2010-01-08) 2 commits
- Handle relative paths in submodule .git files
- Test update-index for a gitlink to a .git file
* jc/ident (2010-01-08) 3 commits
- ident.c: treat $EMAIL as giving user.email identity explicitly
(merged to 'next' on 2010-01-10 at f1f9ded)
+ ident.c: check explicit identity for name and email separately
+ ident.c: remove unused variables
* jc/ls-files-ignored-pathspec (2010-01-08) 4 commits
- ls-files: fix overeager pathspec optimization
- read_directory(): further split treat_path()
- read_directory_recursive(): refactor handling of a single path into a separate function
- t3001: test ls-files -o ignored/dir
* js/exec-error-report (2010-01-10) 4 commits
- Improve error message when a transport helper was not found
- start_command: detect execvp failures early
- run-command: move wait_or_whine earlier
- start_command: report child process setup errors to the parent's stderr
(this branch uses il/vcs-helper.)
--------------------------------------------------
Moved from [New Topics] to [Cooking]
* jc/maint-1.6.1-checkout-m-custom-merge (2010-01-06) 1 commit
- - checkout -m path: fix recreating conflicts
+ (merged to 'next' on 2010-01-10 at df14116)
+ + checkout -m path: fix recreating conflicts
* jn/makefile (2010-01-06) 4 commits
- - Makefile: consolidate .FORCE-* targets
- - Makefile: learn to generate listings for targets requiring special flags
- - Makefile: use target-specific variable to pass flags to cc
- - Makefile: regenerate assembler listings when asked
+ (merged to 'next' on 2010-01-10 at f5a5d42)
+ + Makefile: consolidate .FORCE-* targets
+ + Makefile: learn to generate listings for targets requiring special flags
+ + Makefile: use target-specific variable to pass flags to cc
+ + Makefile: regenerate assembler listings when asked
--------------------------------------------------
Moved from [Will graduate after a bit more cooking] to [Graduated to "master"]
* tr/http-updates (2009-12-28) 4 commits
* jk/maint-1.6.5-reset-hard (2009-12-30) 1 commit
* jk/push-to-delete (2009-12-30) 1 commit
* mm/config-path (2009-12-30) 1 commit
* pm/cvs-environ (2009-12-30) 1 commit
* tr/maint-1.6.5-bash-prompt-show-submodule-changes (2009-12-31) 1 commit
* bg/maint-remote-update-default (2009-12-31) 1 commit
--------------------------------------------------
Moved from [Cooking] to [Will graduate after a bit more cooking]
* cc/reset-more (2010-01-08) 8 commits
- - t7111: check that reset options work as described in the tables
+ (merged to 'next' on 2010-01-10 at 84730de)
+ + t7111: check that reset options work as described in the tables
(merged to 'next' on 2010-01-06 at 96639cb)
+ Documentation: reset: add some missing tables
(merged to 'next' on 2010-01-04 at 8802c2c)
+ Fix bit assignment for CE_CONFLICTED
(merged to 'next' on 2010-01-03 at f83d4c6)
+ "reset --merge": fix unmerged case
+ reset: use "unpack_trees()" directly instead of "git read-tree"
+ reset: add a few tests for "git reset --merge"
+ Documentation: reset: add some tables to describe the different options
+ reset: improve mixed reset error message when in a bare repo
* rs/maint-archive-match-pathspec (2009-12-12) 1 commit
-* il/vcs-helper (2009-12-09) 8 commits
+* il/vcs-helper (2010-01-09) 9 commits
+ (merged to 'next' on 2010-01-10 at 11e448e)
+ + Reset possible helper before reusing remote structure
(merged to 'next' on 2010-01-06 at 7c79f42)
+ Remove special casing of http, https and ftp
+ Support remote archive from all smart transports
+ Support remote helpers implementing smart transports
+ Support taking over transports
+ Refactor git transport options parsing
+ Pass unknown protocols to external protocol handlers
+ Support mandatory capabilities
+ Add remote helper debug mode
+ (this branch is used by js/exec-error-report.)
--------------------------------------------------
Moved from [Cooking] to [Stalled]
* jh/commit-status (2009-12-07) 1 commit
* mh/rebase-fixup (2009-12-07) 2 commits
-Initial round of "fixup" action that is similar to "squash" action in
-"rebase -i" that excludes the commit log message from follow-up commits
-when composing the log message for the updated one. Expected is a further
-improvement to skip opening the editor if a pick is followed only by
-"fixup" and no "squash".
+Expecting further improvements to skip opening the editor if a pick is
+followed only by "fixup" and no "squash".
* ns/rebase-auto-squash (2009-12-08) 1 commit
(merged to 'next' on 2010-01-06 at da4e2f5)
+ rebase -i --autosquash: auto-squash commits
(this branch uses mh/rebase-fixup.)
+
+Blocked by the above.
* jh/notes (2009-12-07) 11 commits
-http://mid.gmane.org/201001051231.43048.johan@herland.net Hold!
+Hold: JH on 2010-01-05, http://article.gmane.org/gmane.comp.version-control.git/136183
* ap/merge-backend-opts (2008-07-18) 6 commits
--------------------------------------------------
Moved from [Cooking] to [Graduated to "master"]
* mm/diag-path-in-treeish (2009-12-07) 1 commit
* fc/opt-quiet-gc-reset (2009-12-02) 1 commit
--------------------------------------------------
Other topics
[Will graduate after a bit more cooking]
* nd/sparse (2010-01-04) 25 commits
- - t7002: test for not using external grep on skip-worktree paths
- - t7002: set test prerequisite "external-grep" if supported
+ (merged to 'next' on 2010-01-10 at fa73d6e)
+ + t7002: test for not using external grep on skip-worktree paths
+ + t7002: set test prerequisite "external-grep" if supported
(merged to 'next' on 2010-01-02 at 5499bbe)
+ grep: do not do external grep on skip-worktree entries
+ commit: correctly respect skip-worktree bit
+ ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID
+ tests: rename duplicate t1009
+ sparse checkout: inhibit empty worktree
+ Add tests for sparse checkout
+ read-tree: add --no-sparse-checkout to disable sparse checkout support
+ unpack-trees(): ignore worktree check outside checkout area
+ unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
+ unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
+ unpack-trees.c: generalize verify_* functions
+ unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
+ Introduce "sparse checkout"
+ dir.c: export excluded_1() and add_excludes_from_file_1()
+ excluded_1(): support exclude files in index
+ unpack-trees(): carry skip-worktree bit over in merged_entry()
+ Read .gitignore from index if it is skip-worktree
+ Avoid writing to buffer in add_excludes_from_file_1()
+ Teach Git to respect skip-worktree bit (writing part)
+ Teach Git to respect skip-worktree bit (reading part)
+ Introduce "skip-worktree" bit in index, teach Git to get/set this bit
+ Add test-index-version
+ update-index: refactor mark_valid() in preparation for new options
+
+I've queued the (close to) original tests for external grep, but as a belt
+and suspender measure Nguyễn may also want to add the whitebox test
+in the review thread.
[Cooking]
-* da/difftool (2009-12-22) 2 commits
+* da/difftool (2010-01-09) 6 commits
+ (merged to 'next' on 2010-01-10 at 749c870)
+ + git-diff.txt: Link to git-difftool
+ + difftool: Allow specifying unconfigured commands with --extcmd
+ + difftool--helper: Remove use of the GIT_MERGE_TOOL variable
+ + difftool--helper: Update copyright and remove distracting comments
(merged to 'next' on 2010-01-06 at e957395)
+ git-difftool: Add '--gui' for selecting a GUI tool
+ t7800-difftool: Set a bogus tool for use by tests
* jh/gitweb-cached (2010-01-03) 4 commits
-Will merge to 'next', unless I hear objections within a few days.
+Hold: Warthog on 2010-01-06, http://article.gmane.org/gmane.comp.version-control.git/136306
* jc/fix-tree-walk (2009-09-14) 7 commits
Resurrected from "Ejected" category. This is fix for a tricky codepath
and testing and improving before it hits 'next' by brave souls is greatly
-appreciated. I am not very happy about the solution myself.
+appreciated (I am using this in my private build).
* jc/branch-d (2009-12-29) 1 commit
- - branch -d: base the "already-merged" safety on the branch it merges with
-
+ (merged to 'next' on 2010-01-10 at 61a14b7)
+ + branch -d: base the "already-merged" safety on the branch it merges with
-http://thread.gmane.org/gmane.comp.version-control.git/135837/focus=135863
-I am tempted to merge this to 'next', but please stop me if people see issues
-in it.
* jc/rerere (2009-12-04) 1 commit
- - Teach --[no-]rerere-autoupdate option to merge, revert and friends
+ (merged to 'next' on 2010-01-10 at e295b7f)
+ + Teach --[no-]rerere-autoupdate option to merge, revert and friends
* jk/run-command-use-shell (2010-01-01) 8 commits
- - t4030, t4031: work around bogus MSYS bash path conversion
- - diff: run external diff helper with shell
- - textconv: use shell to run helper
- - editor: use run_command's shell feature
- - run-command: optimize out useless shell calls
- - run-command: convert simple callsites to use_shell
- - t0021: use $SHELL_PATH for the filter script
- - run-command: add "use shell" option
+ (merged to 'next' on 2010-01-10 at 7479e2a)
+ + t4030, t4031: work around bogus MSYS bash path conversion
+ + diff: run external diff helper with shell
+ + textconv: use shell to run helper
+ + editor: use run_command's shell feature
+ + run-command: optimize out useless shell calls
+ + run-command: convert simple callsites to use_shell
+ + t0021: use $SHELL_PATH for the filter script
+ + run-command: add "use shell" option
* tc/clone-v-progress (2009-12-26) 4 commits
- - clone: use --progress to force progress reporting
- - clone: set transport->verbose when -v/--verbose is used
- - git-clone.txt: reword description of progress behaviour
- - check stderr with isatty() instead of stdout when deciding to show progress
+ (merged to 'next' on 2010-01-10 at ec2bfd7)
+ + clone: use --progress to force progress reporting
+ + clone: set transport->verbose when -v/--verbose is used
+ + git-clone.txt: reword description of progress behaviour
+ + check stderr with isatty() instead of stdout when deciding to show progress
* jc/cache-unmerge (2009-12-25) 9 commits
-Will wait a bit more before moving it to 'next'.
+Will wait a bit more before moving it to 'next'. J6t spotted an issue
+with "rerere forget" and has a test script.
-* tr/http-push-ref-status (2009-12-24) 6 commits
+* tr/http-push-ref-status (2010-01-08) 6 commits
-Peff: $gmane/136169, 136167, 136168
-RC: $gmane/136172
+Rerolled.
* sr/gfi-options (2009-12-04) 7 commits
- - fast-import: add (non-)relative-marks feature
- - fast-import: allow for multiple --import-marks= arguments
- - fast-import: test the new option command
- - fast-import: add option command
- - fast-import: add feature command
- - fast-import: put marks reading in its own function
- - fast-import: put option parsing code in separate functions
-
-http://thread.gmane.org/gmane.comp.version-control.git/134540
-
+ (merged to 'next' on 2010-01-10 at 8b305fb)
+ + fast-import: add (non-)relative-marks feature
+ + fast-import: allow for multiple --import-marks= arguments
+ + fast-import: test the new option command
+ + fast-import: add option command
+ + fast-import: add feature command
+ + fast-import: put marks reading in its own function
+ + fast-import: put option parsing code in separate functions
-I haven't seen comments on this round, and I am tempted to merge it to
-'next' soonish. Please file complaints before I do so if people have
-objections.
--------------------------------------------------
Gone topics
Was in [Graduated to "master"]
* mo/bin-wrappers (2009-12-02) 3 commits
(merged to 'next' on 2010-01-03 at 8c5fa27)
+ INSTALL: document a simpler way to run uninstalled builds
+ run test suite without dashed git-commands in PATH
+ build dashless "bin-wrappers" directory similar to installed bindir
* mv/commit-date (2009-12-03) 2 commits
(merged to 'next' on 2010-01-03 at 1c45fdf)
+ Document date formats accepted by parse_date()
+ builtin-commit: add --date option
* bg/maint-add-all-doc (2009-12-07) 4 commits
(merged to 'next' on 2010-01-03 at b19a323)
+ squash! rm documentation--also mention add-u where we mention commit-a
+ git-rm doc: Describe how to sync index & work tree
+ git-add/rm doc: Consistently back-quote
+ Documentation: 'git add -A' can remove files
* so/cvsserver-update (2009-12-07) 1 commit
(merged to 'next' on 2010-01-03 at 99959b6)
+ cvsserver: make the output of 'update' more compatible with cvs.
* mg/tag-d-show (2009-12-10) 1 commit
(merged to 'next' on 2010-01-03 at 87657d2)
+ tag -d: print sha1 of deleted tag
* sb/maint-octopus (2009-12-11) 3 commits
(merged to 'next' on 2010-01-03 at ffe77d6)
+ octopus: remove dead code
+ octopus: reenable fast-forward merges
+ octopus: make merge process simpler to follow
* js/filter-branch-prime (2009-12-15) 1 commit
(merged to 'next' on 2010-01-03 at 7c90319)
+ filter-branch: remove an unnecessary use of 'git read-tree'
^ permalink raw reply
* What's cooking in git.git (Jan 2010, #03; Sun, 10)
From: Junio C Hamano @ 2010-01-10 19:55 UTC (permalink / raw)
To: git
What's cooking in git.git (Jan 2010, #03; Sun, 10)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with '-' are
only in 'pu' while commits prefixed with '+' are in 'next'. The ones
marked with '.' do not appear in any of the integration branches, but I am
still holding onto them.
--------------------------------------------------
[Graduated to "master"]
* tr/http-updates (2009-12-28) 4 commits
(merged to 'next' on 2010-01-02 at cf25698)
+ Remove http.authAny
+ Allow curl to rewind the RPC read buffer
+ Add an option for using any HTTP authentication scheme, not only basic
+ http: maintain curl sessions
* jk/maint-1.6.5-reset-hard (2009-12-30) 1 commit
(merged to 'next' on 2010-01-02 at 190d63b)
+ reset: unbreak hard resets with GIT_WORK_TREE
* jk/push-to-delete (2009-12-30) 1 commit
(merged to 'next' on 2010-01-03 at 9ee293b)
+ builtin-push: add --delete as syntactic sugar for :foo
* mm/config-path (2009-12-30) 1 commit
(merged to 'next' on 2010-01-03 at 9c0e81a)
+ builtin-config: add --path option doing ~ and ~user expansion.
* pm/cvs-environ (2009-12-30) 1 commit
(merged to 'next' on 2010-01-03 at 4c22932)
+ CVS Server: Support reading base and roots from environment
* tr/maint-1.6.5-bash-prompt-show-submodule-changes (2009-12-31) 1 commit
(merged to 'next' on 2010-01-03 at b785974)
+ bash completion: factor submodules into dirty state
* bg/maint-remote-update-default (2009-12-31) 1 commit
(merged to 'next' on 2010-01-03 at 113009e)
+ Fix "git remote update" with remotes.defalt set
* mm/diag-path-in-treeish (2009-12-07) 1 commit
(merged to 'next' on 2010-01-06 at 6b4201e)
+ Detailed diagnosis when parsing an object name fails.
* fc/opt-quiet-gc-reset (2009-12-02) 1 commit
(merged to 'next' on 2010-01-06 at 03e00cd)
+ General --quiet improvements
--------------------------------------------------
[New Topics]
* bk/fix-relative-gitdir-file (2010-01-08) 2 commits
- Handle relative paths in submodule .git files
- Test update-index for a gitlink to a .git file
* jc/ident (2010-01-08) 3 commits
- ident.c: treat $EMAIL as giving user.email identity explicitly
(merged to 'next' on 2010-01-10 at f1f9ded)
+ ident.c: check explicit identity for name and email separately
+ ident.c: remove unused variables
* jc/ls-files-ignored-pathspec (2010-01-08) 4 commits
- ls-files: fix overeager pathspec optimization
- read_directory(): further split treat_path()
- read_directory_recursive(): refactor handling of a single path into a separate function
- t3001: test ls-files -o ignored/dir
* js/exec-error-report (2010-01-10) 4 commits
- Improve error message when a transport helper was not found
- start_command: detect execvp failures early
- run-command: move wait_or_whine earlier
- start_command: report child process setup errors to the parent's stderr
(this branch uses il/vcs-helper.)
--------------------------------------------------
[Stalled]
* ap/merge-backend-opts (2008-07-18) 6 commits
- Document that merge strategies can now take their own options
- Extend merge-subtree tests to test -Xsubtree=dir.
- Make "subtree" part more orthogonal to the rest of merge-recursive.
- Teach git-pull to pass -X<option> to git-merge
- git merge -X<option>
- git-merge-file --ours, --theirs
"git pull" patch needs sq-then-eval fix to protect it from $IFS
but otherwise seemed good.
* jh/commit-status (2009-12-07) 1 commit
- [test?] Add commit.status, --status, and --no-status
Needs tests.
* mh/rebase-fixup (2009-12-07) 2 commits
(merged to 'next' on 2010-01-06 at c4779a7)
+ Add a command "fixup" to rebase --interactive
+ t3404: Use test_commit to set up test repository
(this branch is used by ns/rebase-auto-squash.)
Expecting further improvements to skip opening the editor if a pick is
followed only by "fixup" and no "squash".
* ns/rebase-auto-squash (2009-12-08) 1 commit
(merged to 'next' on 2010-01-06 at da4e2f5)
+ rebase -i --autosquash: auto-squash commits
(this branch uses mh/rebase-fixup.)
Blocked by the above.
* jh/notes (2009-12-07) 11 commits
- Refactor notes concatenation into a flexible interface for combining notes
- Notes API: Allow multiple concurrent notes trees with new struct notes_tree
- Notes API: for_each_note(): Traverse the entire notes tree with a callback
- Notes API: get_note(): Return the note annotating the given object
- Notes API: add_note(): Add note objects to the internal notes tree structure
- Notes API: init_notes(): Initialize the notes tree from the given notes ref
- Notes API: get_commit_notes() -> format_note() + remove the commit restriction
- Minor style fixes to notes.c
(merged to 'next' on 2010-01-02 at ae42130)
+ Add more testcases to test fast-import of notes
+ Rename t9301 to t9350, to make room for more fast-import tests
+ fast-import: Proper notes tree manipulation
http://thread.gmane.org/gmane.comp.version-control.git/134738
What's the status of the fourth and later patches on this topic? Overall
it looked reasonable, if I recall correctly what I thought when I reviewed
it last time, and I am tempted to merge it to 'next' soonish. Please
file complaints before I do so if people have objections.
Hold: JH on 2010-01-05, http://article.gmane.org/gmane.comp.version-control.git/136183
--------------------------------------------------
[Will graduate after a bit more cooking]
* nd/sparse (2010-01-04) 25 commits
(merged to 'next' on 2010-01-10 at fa73d6e)
+ t7002: test for not using external grep on skip-worktree paths
+ t7002: set test prerequisite "external-grep" if supported
(merged to 'next' on 2010-01-02 at 5499bbe)
+ grep: do not do external grep on skip-worktree entries
+ commit: correctly respect skip-worktree bit
+ ie_match_stat(): do not ignore skip-worktree bit with CE_MATCH_IGNORE_VALID
+ tests: rename duplicate t1009
+ sparse checkout: inhibit empty worktree
+ Add tests for sparse checkout
+ read-tree: add --no-sparse-checkout to disable sparse checkout support
+ unpack-trees(): ignore worktree check outside checkout area
+ unpack_trees(): apply $GIT_DIR/info/sparse-checkout to the final index
+ unpack-trees(): "enable" sparse checkout and load $GIT_DIR/info/sparse-checkout
+ unpack-trees.c: generalize verify_* functions
+ unpack-trees(): add CE_WT_REMOVE to remove on worktree alone
+ Introduce "sparse checkout"
+ dir.c: export excluded_1() and add_excludes_from_file_1()
+ excluded_1(): support exclude files in index
+ unpack-trees(): carry skip-worktree bit over in merged_entry()
+ Read .gitignore from index if it is skip-worktree
+ Avoid writing to buffer in add_excludes_from_file_1()
+ Teach Git to respect skip-worktree bit (writing part)
+ Teach Git to respect skip-worktree bit (reading part)
+ Introduce "skip-worktree" bit in index, teach Git to get/set this bit
+ Add test-index-version
+ update-index: refactor mark_valid() in preparation for new options
I've queued the (close to) original tests for external grep, but as a belt
and suspender measure Nguyễn may also want to add the whitebox test
in the review thread.
* cc/reset-more (2010-01-08) 8 commits
(merged to 'next' on 2010-01-10 at 84730de)
+ t7111: check that reset options work as described in the tables
(merged to 'next' on 2010-01-06 at 96639cb)
+ Documentation: reset: add some missing tables
(merged to 'next' on 2010-01-04 at 8802c2c)
+ Fix bit assignment for CE_CONFLICTED
(merged to 'next' on 2010-01-03 at f83d4c6)
+ "reset --merge": fix unmerged case
+ reset: use "unpack_trees()" directly instead of "git read-tree"
+ reset: add a few tests for "git reset --merge"
+ Documentation: reset: add some tables to describe the different options
+ reset: improve mixed reset error message when in a bare repo
* rs/maint-archive-match-pathspec (2009-12-12) 1 commit
(merged to 'next' on 2010-01-03 at 92d7d15)
+ archive: complain about path specs that don't match anything
* il/vcs-helper (2010-01-09) 9 commits
(merged to 'next' on 2010-01-10 at 11e448e)
+ Reset possible helper before reusing remote structure
(merged to 'next' on 2010-01-06 at 7c79f42)
+ Remove special casing of http, https and ftp
+ Support remote archive from all smart transports
+ Support remote helpers implementing smart transports
+ Support taking over transports
+ Refactor git transport options parsing
+ Pass unknown protocols to external protocol handlers
+ Support mandatory capabilities
+ Add remote helper debug mode
(this branch is used by js/exec-error-report.)
--------------------------------------------------
[Cooking]
* jc/maint-1.6.1-checkout-m-custom-merge (2010-01-06) 1 commit
(merged to 'next' on 2010-01-10 at df14116)
+ checkout -m path: fix recreating conflicts
* jn/makefile (2010-01-06) 4 commits
(merged to 'next' on 2010-01-10 at f5a5d42)
+ Makefile: consolidate .FORCE-* targets
+ Makefile: learn to generate listings for targets requiring special flags
+ Makefile: use target-specific variable to pass flags to cc
+ Makefile: regenerate assembler listings when asked
* da/difftool (2010-01-09) 6 commits
(merged to 'next' on 2010-01-10 at 749c870)
+ git-diff.txt: Link to git-difftool
+ difftool: Allow specifying unconfigured commands with --extcmd
+ difftool--helper: Remove use of the GIT_MERGE_TOOL variable
+ difftool--helper: Update copyright and remove distracting comments
(merged to 'next' on 2010-01-06 at e957395)
+ git-difftool: Add '--gui' for selecting a GUI tool
+ t7800-difftool: Set a bogus tool for use by tests
* jh/gitweb-cached (2010-01-03) 4 commits
- gitweb: Makefile improvements
- gitweb: Optionally add "git" links in project list page
- gitweb: Add option to force version match
- gitweb: Load checking
Hold: Warthog on 2010-01-06, http://article.gmane.org/gmane.comp.version-control.git/136306
* tc/test-locate-httpd (2010-01-02) 1 commit
(merged to 'next' on 2010-01-06 at 9d913e5)
+ t/lib-http.sh: Restructure finding of default httpd location
* jc/fix-tree-walk (2009-09-14) 7 commits
- read-tree --debug-unpack
- unpack-trees.c: look ahead in the index
- unpack-trees.c: prepare for looking ahead in the index
- Aggressive three-way merge: fix D/F case
- traverse_trees(): handle D/F conflict case sanely
- more D/F conflict tests
- tests: move convenience regexp to match object names to test-lib.sh
Resurrected from "Ejected" category. This is fix for a tricky codepath
and testing and improving before it hits 'next' by brave souls is greatly
appreciated (I am using this in my private build).
* jc/branch-d (2009-12-29) 1 commit
(merged to 'next' on 2010-01-10 at 61a14b7)
+ branch -d: base the "already-merged" safety on the branch it merges with
* jc/rerere (2009-12-04) 1 commit
(merged to 'next' on 2010-01-10 at e295b7f)
+ Teach --[no-]rerere-autoupdate option to merge, revert and friends
* jk/run-command-use-shell (2010-01-01) 8 commits
(merged to 'next' on 2010-01-10 at 7479e2a)
+ t4030, t4031: work around bogus MSYS bash path conversion
+ diff: run external diff helper with shell
+ textconv: use shell to run helper
+ editor: use run_command's shell feature
+ run-command: optimize out useless shell calls
+ run-command: convert simple callsites to use_shell
+ t0021: use $SHELL_PATH for the filter script
+ run-command: add "use shell" option
Shuffled the commits in the topic, following J6t's suggestion in
http://thread.gmane.org/gmane.comp.version-control.git/136128
* tc/clone-v-progress (2009-12-26) 4 commits
(merged to 'next' on 2010-01-10 at ec2bfd7)
+ clone: use --progress to force progress reporting
+ clone: set transport->verbose when -v/--verbose is used
+ git-clone.txt: reword description of progress behaviour
+ check stderr with isatty() instead of stdout when deciding to show progress
Perhaps needs an entry in the Release Notes, but otherwise looked Ok.
* tc/smart-http-restrict (2010-01-02) 4 commits
(merged to 'next' on 2010-01-06 at 82736cb)
+ Smart-http tests: Test http-backend without curl or a webserver
+ Smart-http tests: Break test t5560-http-backend into pieces
+ Smart-http tests: Improve coverage in test t5560
+ Smart-http: check if repository is OK to export before serving it
* jc/cache-unmerge (2009-12-25) 9 commits
- rerere forget path: forget recorded resolution
- rerere: refactor rerere logic to make it independent from I/O
- rerere: remove silly 1024-byte line limit
- resolve-undo: teach "update-index --unresolve" to use resolve-undo info
- resolve-undo: "checkout -m path" uses resolve-undo information
- resolve-undo: allow plumbing to clear the information
- resolve-undo: basic tests
- resolve-undo: record resolved conflicts in a new index extension section
- builtin-merge.c: use standard active_cache macros
Will wait a bit more before moving it to 'next'. J6t spotted an issue
with "rerere forget" and has a test script.
* jc/checkout-merge-base (2010-01-07) 4 commits
(merged to 'next' on 2010-01-07 at 5229608)
+ rebase -i: teach --onto A...B syntax
+ rebase: fix --onto A...B parsing and add tests
(merged to 'next' on 2010-01-02 at 6a8f6fc)
+ "rebase --onto A...B" replays history on the merge base between A and B
+ "checkout A...B" switches to the merge base between A and B
* tr/http-push-ref-status (2010-01-08) 6 commits
- transport-helper.c::push_refs(): emit "no refs" error message
- transport-helper.c::push_refs(): ignore helper-reported status if ref is not to be pushed
- transport.c::transport_push(): make ref status affect return value
- refactor ref status logic for pushing
- t5541-http-push.sh: add test for unmatched, non-fast-forwarded refs
- t5541-http-push.sh: add tests for non-fast-forward pushes
Rerolled.
* sr/gfi-options (2009-12-04) 7 commits
(merged to 'next' on 2010-01-10 at 8b305fb)
+ fast-import: add (non-)relative-marks feature
+ fast-import: allow for multiple --import-marks= arguments
+ fast-import: test the new option command
+ fast-import: add option command
+ fast-import: add feature command
+ fast-import: put marks reading in its own function
+ fast-import: put option parsing code in separate functions
^ permalink raw reply
* Саня *** Ti-3 *** Бурим добавил Вас в друзья на сайте ВКонтакте.ру
From: ВКонтакте.ру @ 2010-01-10 18:08 UTC (permalink / raw)
To: Здравствуйте
Здравствуйте,
Саня *** Ti-3 *** Бурим добавил Вас в друзья на сайте ВКонтакте.ру
Вы можете зайти на сайт и просмотреть страницы Ваших друзей, используя
Ваш e-mail и автоматически созданный пароль: pBXAfZTw
ВКонтакте.ру - сайт, который ежедневно позволяет десяткам миллионов людей находить старых друзей и оставаться с ними на связи, делиться фотографиями
и событиями из жизни.
Чтобы войти на сайт, пройдите по ссылке:
http://vk.com/login.php?regemail=git@vger.kernel.org#pBXAfZTw
Внимание: Ваша регистрация не будет активирована, если Вы проигнорируете
это приглашение.
Желаем удачи!
С уважением,
Администрация ВКонтакте.ру
^ permalink raw reply
* Re: [msysGit] [PATCH/RFC 06/11] run-command: add kill_async() and is_async_alive()
From: Erik Faye-Lund @ 2010-01-10 17:06 UTC (permalink / raw)
To: Johannes Sixt, Linus Torvalds, Stephen R. van den Berg
Cc: msysgit, git, dotzenlabs
In-Reply-To: <40aa078e1001081649h5cb767d5t880110d923418300@mail.gmail.com>
On Sat, Jan 9, 2010 at 1:49 AM, Erik Faye-Lund <kusmabite@googlemail.com> wrote:
> On Wed, Dec 2, 2009 at 8:27 PM, Johannes Sixt <j6t@kdbg.org> wrote:
>> On Mittwoch, 2. Dezember 2009, Erik Faye-Lund wrote:
>>> On Fri, Nov 27, 2009 at 8:59 PM, Johannes Sixt <j6t@kdbg.org> wrote:
>>> > "relatively small chance of stuff blowing up"? The docs of
>>> > TerminateThread: "... the kernel32 state for the thread's process could
>>> > be inconsistent." That's scary if we are talking about a process that
>>> > should run for days or weeks without interruption.
>>>
>>> I think there's a misunderstanding here. I thought your suggestion was
>>> to simply call die(), which would take down the main process. After
>>> reading this explanation, I think you're talking about giving an error
>>> and rejecting the connection instead. Which makes more sense than to
>>> risk crashing the main-process, indeed.
>>
>> Just rejecting a connection is certainly the simplest do to keep the daemon
>> process alive. But the server can be DoS-ed from a single source IP.
>>
>> Currently git-daemon can only be DDoS-ed because there is a maximum number of
>> connections, which are not closed if all of them originate from different
>> IPs.
>>
>
> After some testing I've found that git-daemon can very much be DoS-ed
> from a single IP in it's current form. This is for two reasons:
> 1) The clever xcalloc + memcmp trick has a fault; the port for each
> connection is different, so there will never be a match. I have a
> patch[1] for this that I plan to send out soon.
> 2) Even with this patch the effect of the DoS-protection is kind of
> limited. This is because it's a child process of the fork()'d process
> again that does all the heavy lifting, and kill(pid, SIGHUP) doesn't
> kill child processes. So, the connection gets to continue the action
> until upload-pack (or whatever the current command is) finish. This
> might be quite lengthy.
>
Actually, this isn't the end of the story, there's an additional issue
that happens if 1) doesn't:
In commit 02d57da (Be slightly smarter about git-daemon client
shutdown), Linus adds the following hunk:
@@ -26,6 +26,12 @@ static int upload(char *dir, int dirlen)
access("HEAD", R_OK))
return -1;
+ /*
+ * We'll ignore SIGTERM from now on, we have a
+ * good client.
+ */
+ signal(SIGTERM, SIG_IGN);
+
/* git-upload-pack only ever reads stuff, so this is safe */
execlp("git-upload-pack", "git-upload-pack", ".", NULL);
return -1;
This is fine, because he also makes sure to first try to kill with
SIGTERM, and then fall back to SIGKILL if that failed. However,
Stephen later adds commit 3bd62c2 ("git-daemon: rewrite kindergarden,
new option --max-connections"), and here he leaves the hunk quoted
above, but removes the SIGKILL code-path. The consequence is that the
forked process doesn't die at all any more.
IMO, Stephen did kind-of right in removing the SIGKILL code-path,
since we don't kill just a random child anymore. But leaving the
SIGTERM-ignoring on looks like a bug to me.
Now, if that was fixed alone, I think we'd suffer even worse, due to
2) - since the child processes aren't killed, we'd end up allowing
more connections than the value of max_connections - upload-pack would
gladly continue in the background. Some quick testing showed that the
following patch solved the issue for me. I'm not very happy about it,
since I'm working on porting the code to Windows, and we don't have
the same process-group concept on windows... Oh well.
diff --git a/daemon.c b/daemon.c
index 918e560..bc6874c 100644
--- a/daemon.c
+++ b/daemon.c
@@ -291,12 +291,6 @@ static int run_service(char *dir, struct
daemon_service *service)
return -1;
}
- /*
- * We'll ignore SIGTERM from now on, we have a
- * good client.
- */
- signal(SIGTERM, SIG_IGN);
-
return service->fn();
}
@@ -633,7 +627,8 @@ static void kill_some_child(void)
for (; (next = blanket->next); blanket = next)
if (!addrcmp(&blanket->address, &next->address)) {
- kill(blanket->pid, SIGTERM);
+ kill(-blanket->pid, SIGTERM);
break;
}
}
@@ -676,7 +671,8 @@ static void handle(int incoming, struct sockaddr
*addr, int addrlen)
add_child(pid, addr, addrlen);
return;
- }
+ } else
+ setpgid(0, 0);
dup2(incoming, 0);
dup2(incoming, 1);
--
Erik "kusma" Faye-Lund
^ permalink raw reply related
* Re: [PATCH] git-p4: Fix empty submit template when editor fires up
From: Kevin Leung @ 2010-01-10 13:52 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: git, Simon Hausmann, gitster
In-Reply-To: <20100110111440.GB19612@progeny.tock>
On Sun, Jan 10, 2010 at 7:14 PM, Jonathan Nieder <jrnieder@gmail.com> wrote:
> Jonathan Nieder wrote:
>> Kevin Leung wrote:
>> > read_pipe() returns "\n". We need to remove it before passing it
>> > to system().
>> >
>> > Signed-off-by: Kevin Leung <kevinlsk@gmail.com>
>>
>> If I understand correctly, this is a cosmetic change:
>
> ... and of course I didn't the subject. Sorry about that. Thanks
> for cleaning up my mess.
>
> Acked-by: Jonathan Nieder <jrnieder@gmail.com>
>
>> What is the rationale for the rewritten system() line? I would have
>> understood a change to
>>
>> os.spawnlp("sh", "-c", editor + " \"$@\"", fileName)
>
> I am still curious about this, though it is not so important.
You are right, the system() line is not so important. I can revert
that line of change.
Kevin
^ permalink raw reply
* [PATCH 4/4] Improve error message when a transport helper was not found
From: Johannes Sixt @ 2010-01-10 13:18 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: git
In-Reply-To: <201001101404.22258.j6t@kdbg.org>
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Perviously, the error message was:
git: 'remote-foo' is not a git-command. See 'git --help'.
By not treating the transport helper as a git command, a more suitable
error is reported:
fatal: Unable to find remote helper for 'foo'
Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
While I agree mostly with the implementation of your patch, the justification
was completely off, and I think it was because you did not notice that the
parent process died from SIGPIPE. When patches 1-3/4 are applied, the
parent does not die from SIGPIPE anymore, and the issue is now only minor
(an unsuitable error message instead of no error message). Therefore,
I rewrote the commit message to tone it down.
-- Hannes
transport-helper.c | 14 ++++++++++----
1 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/transport-helper.c b/transport-helper.c
index 6ece0d9..d1bc3af 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -102,6 +102,7 @@ static struct child_process *get_helper(struct transport *transport)
int refspec_nr = 0;
int refspec_alloc = 0;
int duped;
+ int code;
if (data->helper)
return data->helper;
@@ -111,13 +112,18 @@ static struct child_process *get_helper(struct transport *transport)
helper->out = -1;
helper->err = 0;
helper->argv = xcalloc(4, sizeof(*helper->argv));
- strbuf_addf(&buf, "remote-%s", data->name);
+ strbuf_addf(&buf, "git-remote-%s", data->name);
helper->argv[0] = strbuf_detach(&buf, NULL);
helper->argv[1] = transport->remote->name;
helper->argv[2] = remove_ext_force(transport->url);
- helper->git_cmd = 1;
- if (start_command(helper))
- die("Unable to run helper: git %s", helper->argv[0]);
+ helper->git_cmd = 0;
+ helper->silent_exec_failure = 1;
+ code = start_command(helper);
+ if (code < 0 && errno == ENOENT)
+ die("Unable to find remote helper for '%s'", data->name);
+ else
+ exit(code);
+
data->helper = helper;
data->no_disconnect_req = 0;
--
1.6.6.115.gd1ab3
^ permalink raw reply related
* [PATCH 3/4] start_command: detect execvp failures early
From: Johannes Sixt @ 2010-01-10 13:11 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: git
In-Reply-To: <201001101404.22258.j6t@kdbg.org>
Previously, failures during execvp could be detected only by
finish_command. However, in some situations it is beneficial for the
parent process to know earlier that the child process will not run.
The idea to use a pipe to signal failures to the parent process and
the test case were lifted from patches by Ilari Liusvaara.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
Makefile | 1 +
run-command.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
t/t0061-run-command.sh | 14 ++++++++++++++
test-run-command.c | 35 +++++++++++++++++++++++++++++++++++
4 files changed, 96 insertions(+), 1 deletions(-)
create mode 100755 t/t0061-run-command.sh
create mode 100644 test-run-command.c
diff --git a/Makefile b/Makefile
index 87fc7ff..22c1546 100644
--- a/Makefile
+++ b/Makefile
@@ -1785,6 +1785,7 @@ TEST_PROGRAMS += test-genrandom$X
TEST_PROGRAMS += test-match-trees$X
TEST_PROGRAMS += test-parse-options$X
TEST_PROGRAMS += test-path-utils$X
+TEST_PROGRAMS += test-run-command$X
TEST_PROGRAMS += test-sha1$X
TEST_PROGRAMS += test-sigchain$X
diff --git a/run-command.c b/run-command.c
index dccac37..473b7f8 100644
--- a/run-command.c
+++ b/run-command.c
@@ -17,6 +17,12 @@ static inline void dup_devnull(int to)
#ifndef WIN32
static int child_err = 2;
+static int child_notifier = -1;
+
+static void notify_parent()
+{
+ write(child_notifier, "", 1);
+}
static NORETURN void die_child(const char *err, va_list params)
{
@@ -142,6 +148,11 @@ fail_pipe:
trace_argv_printf(cmd->argv, "trace: run_command:");
#ifndef WIN32
+{
+ int notify_pipe[2];
+ if (pipe(notify_pipe))
+ notify_pipe[0] = notify_pipe[1] = -1;
+
fflush(NULL);
cmd->pid = fork();
if (!cmd->pid) {
@@ -156,6 +167,11 @@ fail_pipe:
}
set_die_routine(die_child);
+ close(notify_pipe[0]);
+ set_cloexec(notify_pipe[1]);
+ child_notifier = notify_pipe[1];
+ atexit(notify_parent);
+
if (cmd->no_stdin)
dup_devnull(0);
else if (need_in) {
@@ -196,8 +212,16 @@ fail_pipe:
unsetenv(*cmd->env);
}
}
- if (cmd->preexec_cb)
+ if (cmd->preexec_cb) {
+ /*
+ * We cannot predict what the pre-exec callback does.
+ * Forgo parent notification.
+ */
+ close(child_notifier);
+ child_notifier = -1;
+
cmd->preexec_cb();
+ }
if (cmd->git_cmd) {
execv_git_cmd(cmd->argv);
} else {
@@ -215,6 +239,27 @@ fail_pipe:
if (cmd->pid < 0)
error("cannot fork() for %s: %s", cmd->argv[0],
strerror(failed_errno = errno));
+
+ /*
+ * Wait for child's execvp. If the execvp succeeds (or if fork()
+ * failed), EOF is seen immediately by the parent. Otherwise, the
+ * child process sends a single byte.
+ * Note that use of this infrastructure is completely advisory,
+ * therefore, we keep error checks minimal.
+ */
+ close(notify_pipe[1]);
+ if (read(notify_pipe[0], ¬ify_pipe[1], 1) == 1) {
+ /*
+ * At this point we know that fork() succeeded, but execvp()
+ * failed. Errors have been reported to our stderr.
+ */
+ wait_or_whine(cmd->pid, cmd->argv[0],
+ cmd->silent_exec_failure);
+ failed_errno = errno;
+ cmd->pid = -1;
+ }
+ close(notify_pipe[0]);
+}
#else
{
int s0 = -1, s1 = -1, s2 = -1; /* backups of stdin, stdout, stderr */
diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh
new file mode 100755
index 0000000..10b26e4
--- /dev/null
+++ b/t/t0061-run-command.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+#
+# Copyright (c) 2009 Ilari Liusvaara
+#
+
+test_description='Test run command'
+
+. ./test-lib.sh
+
+test_expect_success 'start_command reports ENOENT' '
+ test-run-command start-command-ENOENT ./does-not-exist
+'
+
+test_done
diff --git a/test-run-command.c b/test-run-command.c
new file mode 100644
index 0000000..a1d5306
--- /dev/null
+++ b/test-run-command.c
@@ -0,0 +1,35 @@
+/*
+ * test-run-command.c: test run command API.
+ *
+ * (C) 2009 Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
+ *
+ * This code is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include "git-compat-util.h"
+#include "run-command.h"
+#include <string.h>
+#include <errno.h>
+
+int main(int argc, char **argv)
+{
+ struct child_process proc;
+
+ memset(&proc, 0, sizeof(proc));
+
+ if(argc < 3)
+ return 1;
+ proc.argv = (const char **)argv+2;
+
+ if (!strcmp(argv[1], "start-command-ENOENT")) {
+ if (start_command(&proc) < 0 && errno == ENOENT)
+ return 0;
+ fprintf(stderr, "FAIL %s\n", argv[1]);
+ return 1;
+ }
+
+ fprintf(stderr, "check usage\n");
+ return 1;
+}
--
1.6.6.115.gd1ab3
^ permalink raw reply related
* [PATCH 2/4] run-command: move wait_or_whine earlier
From: Johannes Sixt @ 2010-01-10 13:08 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: git
In-Reply-To: <201001101404.22258.j6t@kdbg.org>
We want to reuse it from start_command.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
run-command.c | 84 ++++++++++++++++++++++++++++----------------------------
1 files changed, 42 insertions(+), 42 deletions(-)
diff --git a/run-command.c b/run-command.c
index 02c7bfb..dccac37 100644
--- a/run-command.c
+++ b/run-command.c
@@ -39,6 +39,48 @@ static inline void set_cloexec(int fd)
}
#endif
+static int wait_or_whine(pid_t pid, const char *argv0, int silent_exec_failure)
+{
+ int status, code = -1;
+ pid_t waiting;
+ int failed_errno = 0;
+
+ while ((waiting = waitpid(pid, &status, 0)) < 0 && errno == EINTR)
+ ; /* nothing */
+
+ if (waiting < 0) {
+ failed_errno = errno;
+ error("waitpid for %s failed: %s", argv0, strerror(errno));
+ } else if (waiting != pid) {
+ error("waitpid is confused (%s)", argv0);
+ } else if (WIFSIGNALED(status)) {
+ code = WTERMSIG(status);
+ error("%s died of signal %d", argv0, code);
+ /*
+ * This return value is chosen so that code & 0xff
+ * mimics the exit code that a POSIX shell would report for
+ * a program that died from this signal.
+ */
+ code -= 128;
+ } else if (WIFEXITED(status)) {
+ code = WEXITSTATUS(status);
+ /*
+ * Convert special exit code when execvp failed.
+ */
+ if (code == 127) {
+ code = -1;
+ failed_errno = ENOENT;
+ if (!silent_exec_failure)
+ error("cannot run %s: %s", argv0,
+ strerror(ENOENT));
+ }
+ } else {
+ error("waitpid is confused (%s)", argv0);
+ }
+ errno = failed_errno;
+ return code;
+}
+
int start_command(struct child_process *cmd)
{
int need_in, need_out, need_err;
@@ -272,48 +314,6 @@ fail_pipe:
return 0;
}
-static int wait_or_whine(pid_t pid, const char *argv0, int silent_exec_failure)
-{
- int status, code = -1;
- pid_t waiting;
- int failed_errno = 0;
-
- while ((waiting = waitpid(pid, &status, 0)) < 0 && errno == EINTR)
- ; /* nothing */
-
- if (waiting < 0) {
- failed_errno = errno;
- error("waitpid for %s failed: %s", argv0, strerror(errno));
- } else if (waiting != pid) {
- error("waitpid is confused (%s)", argv0);
- } else if (WIFSIGNALED(status)) {
- code = WTERMSIG(status);
- error("%s died of signal %d", argv0, code);
- /*
- * This return value is chosen so that code & 0xff
- * mimics the exit code that a POSIX shell would report for
- * a program that died from this signal.
- */
- code -= 128;
- } else if (WIFEXITED(status)) {
- code = WEXITSTATUS(status);
- /*
- * Convert special exit code when execvp failed.
- */
- if (code == 127) {
- code = -1;
- failed_errno = ENOENT;
- if (!silent_exec_failure)
- error("cannot run %s: %s", argv0,
- strerror(ENOENT));
- }
- } else {
- error("waitpid is confused (%s)", argv0);
- }
- errno = failed_errno;
- return code;
-}
-
int finish_command(struct child_process *cmd)
{
return wait_or_whine(cmd->pid, cmd->argv[0], cmd->silent_exec_failure);
--
1.6.6.115.gd1ab3
^ permalink raw reply related
* [PATCH 1/4] start_command: report child process setup errors to the parent's stderr
From: Johannes Sixt @ 2010-01-10 13:07 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: git
In-Reply-To: <201001101404.22258.j6t@kdbg.org>
When the child process's environment is set up in start_command(), error
messages were written to wherever the parent redirected the child's stderr
channel. However, even if the parent redirected the child's stderr, errors
during this setup process, including the exec itself, are usually an
indication of a problem in the parent's environment. Therefore, the error
messages should go to the parent's stderr.
Redirection of the child's error messages is usually only used to redirect
hook error messages during client-server exchanges. In these cases, hook
setup errors could be regarded as information leak.
This patch makes a copy of stderr if necessary and uses a special
die routine that is used for all die() calls in the child that sends the
errors messages to the parent's stderr.
The trace call that reported a failed execvp is removed (because it writes
to stderr) and replaced by die_errno() with special treatment of ENOENT.
The improvement in the error message can be seen with this sequence:
mkdir .git/hooks/pre-commit
git commit
Previously, the error message was
error: cannot run .git/hooks/pre-commit: No such file or directory
and now it is
fatal: cannot exec '.git/hooks/pre-commit': Permission denied
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
This should address your concern that "errors go to who-knows-where",
that I meanwhile share with you.
run-command.c | 46 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 43 insertions(+), 3 deletions(-)
diff --git a/run-command.c b/run-command.c
index cf2d8f7..02c7bfb 100644
--- a/run-command.c
+++ b/run-command.c
@@ -15,6 +15,30 @@ static inline void dup_devnull(int to)
close(fd);
}
+#ifndef WIN32
+static int child_err = 2;
+
+static NORETURN void die_child(const char *err, va_list params)
+{
+ char msg[4096];
+ int len = vsnprintf(msg, sizeof(msg), err, params);
+ if (len > sizeof(msg))
+ len = sizeof(msg);
+
+ write(child_err, "fatal: ", 7);
+ write(child_err, msg, len);
+ write(child_err, "\n", 1);
+ exit(128);
+}
+
+static inline void set_cloexec(int fd)
+{
+ int flags = fcntl(fd, F_GETFD);
+ if (flags >= 0)
+ fcntl(fd, F_SETFD, flags | FD_CLOEXEC);
+}
+#endif
+
int start_command(struct child_process *cmd)
{
int need_in, need_out, need_err;
@@ -79,6 +103,17 @@ fail_pipe:
fflush(NULL);
cmd->pid = fork();
if (!cmd->pid) {
+ /*
+ * Redirect the channel to write syscall error messages to
+ * before redirecting the process's stderr so that all die()
+ * in subsequent call paths use the parent's stderr.
+ */
+ if (cmd->no_stderr || need_err) {
+ child_err = dup(2);
+ set_cloexec(child_err);
+ }
+ set_die_routine(die_child);
+
if (cmd->no_stdin)
dup_devnull(0);
else if (need_in) {
@@ -126,9 +161,14 @@ fail_pipe:
} else {
execvp(cmd->argv[0], (char *const*) cmd->argv);
}
- trace_printf("trace: exec '%s' failed: %s\n", cmd->argv[0],
- strerror(errno));
- exit(127);
+ /*
+ * Do not check for cmd->silent_exec_failure; the parent
+ * process will check it when it sees this exit code.
+ */
+ if (errno == ENOENT)
+ exit(127);
+ else
+ die_errno("cannot exec '%s'", cmd->argv[0]);
}
if (cmd->pid < 0)
error("cannot fork() for %s: %s", cmd->argv[0],
--
1.6.6.115.gd1ab3
^ permalink raw reply related
* [PATCH 0/4] Detect exec errors in start_command early
From: Johannes Sixt @ 2010-01-10 13:04 UTC (permalink / raw)
To: Ilari Liusvaara; +Cc: git
In-Reply-To: <1263044757-12560-2-git-send-email-ilari.liusvaara@elisanet.fi>
On Samstag, 9. Januar 2010, Ilari Liusvaara wrote:
> 6 files changed, 282 insertions(+), 13 deletions(-)
IMHO, you are going completely overboard with your patch.
You check every single possible and unlikely error condition in the new code
that you introde, but ignore that there are quite a number of calls in the
existing code whose error conditions go checked.
And as a result, you "only" report errno values of some calls, and ignore that
there is at least one potential die() call hidden in execv_git_cmd(). IOW,
your code is not a catch-all and only an isolated solution.
I hope I can do better.
I developed this series on top of il/vcs-helper. But patches 1-3/4 are
actually an independent topic and also suitable to be merged into
jk/run-command-use-shell to implement improved DWIM whether a shell is
needed.
Patch 4/4 is to address your problem of weak error reporting with transport
helpers. I think I understand now what your problem is -- namely that
previously no error was reported if a transport helper program did not exist.
The reason for the missing error message is IMO a design weakness in the
protocol: It requires that the parent talks first - and by talking to an
early-died child process it dies from SIGPIPE. I experimented with
signal(SIGPIPE, SIG_IGN) to get around this, but it didn't work (the SIGPIPE
arrived anyway).
Anyway, patch 4/4 goes on top of il/vcs-helper after merging the topic
consisting of 1-3/4.
Ilari Liusvaara (1):
Improve error message when a transport helper was not found
Johannes Sixt (3):
start_command: report child process setup errors to the parent's
stderr
run-command: move wait_or_whine earlier
start_command: detect execvp failures early
Makefile | 1 +
run-command.c | 177
+++++++++++++++++++++++++++++++++++-------------
t/t0061-run-command.sh | 14 ++++
test-run-command.c | 35 ++++++++++
transport-helper.c | 14 +++-
5 files changed, 191 insertions(+), 50 deletions(-)
create mode 100755 t/t0061-run-command.sh
create mode 100644 test-run-command.c
^ permalink raw reply
* Re: [PATCH v2 1/4] Documentation/git-merge: reword references to "remote" and "pull"
From: Thomas Rast @ 2010-01-10 12:24 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: git, Junio C Hamano
In-Reply-To: <20100110041357.GF1083@progeny.tock>
Jonathan Nieder wrote:
> Thomas Rast wrote:
> > * Look at the diffs. 'git diff' will show a three-way diff,
> > - highlighting changes from both the HEAD and remote versions.
> > + highlighting changes from both the HEAD and their versions.
> >
> > * Look at the diffs on their own. 'git log --merge -p <path>'
>
> This is a bit awkward, since 'they' is playing two roles. Also,
> the context does not make it obvious what 'our' and 'their'
> versions are.
>
> Maybe:
>
> | * Look at the diffs. 'git diff' will show a three-way diff,
> | highlighting changes from both the HEAD and MERGE_HEAD
> | versions.
I like this idea, as it nicely assigns terminology to the "their"
side. We need to explain MERGE_HEAD (it's not in the manpage yet),
but that should fit in somewhere.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* Re: [PATCH v2 4/4] Documentation: spell 'git cmd' without dash throughout
From: Thomas Rast @ 2010-01-10 12:21 UTC (permalink / raw)
To: Jonathan Nieder; +Cc: git, Junio C Hamano
In-Reply-To: <20100110025641.GB1083@progeny.tock>
Jonathan Nieder wrote:
> > 110 files changed, 584 insertions(+), 584 deletions(-)
>
> But yikes! Did you do this by hand or by some automated process?
The (now-refined) bottom line is
perl -i -pe "s{'git-((?"'!'"cvsserver|upload-pack|receive-pack|shell|upload-archive)[a-z-]+)}{'git \$1}g" Documentation/*.txt
git checkout -- Documentation/RelNotes*
git add -p
I really stepped through all of them with 'git add -p', but my eyes
probably got tired rather quickly.
> A 'git-apply' snuck in. ;-)
Indeed, and (as you can see in the update I sent a few minutes ago) I
missed a lot more, because I originally had a regex that only scanned
for 'git-cmd' and 'git-split-cmd', missing the 'git-three-word-cmd'
and 'git-cmd --with-option' forms. Thanks for pointing that out.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* Re: [PATCH v2 2/4] Documentation: warn prominently against merging with dirty trees
From: Thomas Rast @ 2010-01-10 12:16 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jonathan Nieder, git
In-Reply-To: <7vskaefp2v.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
> >> while possible, it leaves you in a state that is hard to
> >> +back out of in the case of a conflict.
> >> +
> >
> > Oh, that is a problem. Maybe 'git merge' should refuse to merge
> > unless told otherwise, if there is a dirty index and there might be
> > conflicts.
Actually I'm worried about a dirty *worktree*. Do you think that
should be clarified?
> "git reset --merge" will keep your local changes after such a merge, and
> "mergy" operations (not just "merge" but also "revert", "am -3", etc)
> won't get you into a situation where you cannot, by refusing to do
> anything when e.g. your index is dirty. Especially when Christian's
> "reset --merge" update becomes solid, "... is hard to back out of" will
> become a false statement.
Does that apply to dirty worktrees, too? I admit I didn't follow that
topic at all.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* [PATCH] Documentation: show-files is now called git-ls-files
From: Thomas Rast @ 2010-01-10 12:11 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Jonathan Nieder
In-Reply-To: <201001101310.21455.trast@student.ethz.ch>
Amazingly, a reference to 'show files' survived from the core command
documentation introduced in c64b9b8 (Reference documentation for the
core git commands., 2005-05-05)!
However, the tool is now called git-ls-files.
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
---
Documentation/git-ls-files.txt | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 7faba23..a84cc37 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -140,7 +140,7 @@ OPTIONS
Output
------
-show files just outputs the filename unless '--stage' is specified in
+'git ls-files' just outputs the filenames unless '--stage' is specified in
which case it outputs:
[<tag> ]<mode> <object> <stage> <file>
--
1.6.6.218.g502b0
^ permalink raw reply related
* [PATCH 2/2] More missed `code snippets`
From: Thomas Rast @ 2010-01-10 12:10 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Jonathan Nieder
In-Reply-To: <48822ef1fee0a734817bad9f63e122e4d1d66106.1263123648.git.trast@student.ethz.ch>
Squashed into the corresponding commit of the original series.
---
Additionally, I reverted
--- i/Documentation/git-bisect.txt
+++ w/Documentation/git-bisect.txt
@@ -26,7 +26,7 @@ on the subcommand:
git bisect log
git bisect run <cmd>...
-This command uses `git rev-list --bisect` to help drive the
+This command uses 'git rev-list --bisect' to help drive the
binary search process to find which change introduced a bug, given an
old "good" commit object name and a later "bad" commit object name.
per the review.
Documentation/config.txt | 2 +-
Documentation/git-gc.txt | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git i/Documentation/config.txt w/Documentation/config.txt
index 6bfd9e1..3e96a27 100644
--- i/Documentation/config.txt
+++ w/Documentation/config.txt
@@ -747,7 +747,7 @@ diff.mnemonicprefix::
compares a (c)ommit and the (w)ork tree;
`git diff --cached`;;
compares a (c)ommit and the (i)ndex;
-`git-diff HEAD:file1 file2`;;
+`git diff HEAD:file1 file2`;;
compares an (o)bject and a (w)ork tree entity;
`git diff --no-index a b`;;
compares two non-git things (1) and (2).
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index 771807f..189573a 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -50,7 +50,7 @@ Housekeeping is required if there are too many loose objects or
too many packs in the repository. If the number of loose objects
exceeds the value of the `gc.auto` configuration variable, then
all loose objects are combined into a single pack using
-'git repack -d -l'. Setting the value of `gc.auto` to 0
+`git repack -d -l`. Setting the value of `gc.auto` to 0
disables automatic packing of loose objects.
+
If the number of packs exceeds the value of `gc.autopacklimit`,
--
1.6.6.218.g502b0
^ permalink raw reply related
* [PATCH 1/2] More missed dashed 'git-cmd' forms
From: Thomas Rast @ 2010-01-10 12:10 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano, Jonathan Nieder
In-Reply-To: <201001101310.21455.trast@student.ethz.ch>
Squashed into the corresponding commit of the original series.
---
Documentation/config.txt | 14 +++++++-------
Documentation/git-archive.txt | 2 +-
Documentation/git-commit.txt | 2 +-
Documentation/git-daemon.txt | 4 ++--
Documentation/git-diff-index.txt | 4 ++--
Documentation/git-diff-tree.txt | 6 +++---
Documentation/git-for-each-ref.txt | 2 +-
Documentation/git-gc.txt | 2 +-
Documentation/git-get-tar-commit-id.txt | 2 +-
Documentation/git-help.txt | 2 +-
Documentation/git-instaweb.txt | 2 +-
Documentation/git-log.txt | 2 +-
Documentation/git-ls-files.txt | 2 +-
Documentation/git-mailinfo.txt | 2 +-
Documentation/git-merge-index.txt | 2 +-
Documentation/git-merge-one-file.txt | 4 ++--
Documentation/git-prune.txt | 2 +-
Documentation/git-read-tree.txt | 2 +-
Documentation/git-repack.txt | 2 +-
Documentation/git-rerere.txt | 2 +-
Documentation/git-rev-parse.txt | 4 ++--
Documentation/git-show-index.txt | 2 +-
Documentation/git-show.txt | 2 +-
Documentation/git-tag.txt | 2 +-
Documentation/git-tar-tree.txt | 2 +-
Documentation/git-update-index.txt | 8 ++++----
Documentation/git-upload-archive.txt | 2 +-
Documentation/git-web--browse.txt | 4 ++--
Documentation/gitcore-tutorial.txt | 12 ++++++------
Documentation/gitdiffcore.txt | 18 +++++++++---------
Documentation/githooks.txt | 8 ++++----
Documentation/gitrepository-layout.txt | 2 +-
32 files changed, 64 insertions(+), 64 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 937dfbe..5d549ca 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -443,7 +443,7 @@ core.pager::
core.whitespace::
A comma separated list of common whitespace problems to
notice. 'git diff' will use `color.diff.whitespace` to
- highlight them, and 'git-apply --whitespace=error' will
+ highlight them, and 'git apply --whitespace=error' will
consider them as errors. You can prefix `-` to disable
any of them (e.g. `-trailing-space`):
+
@@ -673,7 +673,7 @@ color.interactive::
colors only when the output is to the terminal. Defaults to false.
color.interactive.<slot>::
- Use customized color for 'git-add --interactive'
+ Use customized color for 'git add --interactive'
output. `<slot>` may be `prompt`, `header`, `help` or `error`, for
four distinct types of normal output from interactive
commands. The values of these variables may be specified as
@@ -858,7 +858,7 @@ format.signoff::
gc.aggressiveWindow::
The window size parameter used in the delta compression
- algorithm used by 'git-gc --aggressive'. This defaults
+ algorithm used by 'git gc --aggressive'. This defaults
to 10.
gc.auto::
@@ -889,22 +889,22 @@ gc.pruneexpire::
unreachable objects immediately.
gc.reflogexpire::
- 'git-reflog expire' removes reflog entries older than
+ 'git reflog expire' removes reflog entries older than
this time; defaults to 90 days.
gc.reflogexpireunreachable::
- 'git-reflog expire' removes reflog entries older than
+ 'git reflog expire' removes reflog entries older than
this time and are not reachable from the current tip;
defaults to 30 days.
gc.rerereresolved::
Records of conflicted merge you resolved earlier are
- kept for this many days when 'git-rerere gc' is run.
+ kept for this many days when 'git rerere gc' is run.
The default is 60 days. See linkgit:git-rerere[1].
gc.rerereunresolved::
Records of conflicted merge you have not resolved are
- kept for this many days when 'git-rerere gc' is run.
+ kept for this many days when 'git rerere gc' is run.
The default is 15 days. See linkgit:git-rerere[1].
gitcvs.commitmsgannotation::
diff --git a/Documentation/git-archive.txt b/Documentation/git-archive.txt
index 980bc62..799c8b6 100644
--- a/Documentation/git-archive.txt
+++ b/Documentation/git-archive.txt
@@ -27,7 +27,7 @@ used as the modification time of each file in the archive. In the latter
case the commit time as recorded in the referenced commit object is
used instead. Additionally the commit ID is stored in a global
extended pax header if the tar format is used; it can be extracted
-using 'git-get-tar-commit-id'. In ZIP files it is stored as a file
+using 'git get-tar-commit-id'. In ZIP files it is stored as a file
comment.
OPTIONS
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 8914543..c322c75 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -40,7 +40,7 @@ The content to be added can be specified in several ways:
5. by using the --interactive switch with the 'commit' command to decide one
by one which files should be part of the commit, before finalizing the
- operation. Currently, this is done by invoking 'git-add --interactive'.
+ operation. Currently, this is done by invoking 'git add --interactive'.
The `--dry-run` option can be used to obtain a
summary of what is included by any of the above for the next
diff --git a/Documentation/git-daemon.txt b/Documentation/git-daemon.txt
index ece232e..01c9f8e 100644
--- a/Documentation/git-daemon.txt
+++ b/Documentation/git-daemon.txt
@@ -181,7 +181,7 @@ upload-pack::
item to `false`.
upload-archive::
- This serves 'git-archive --remote'. It is disabled by
+ This serves 'git archive --remote'. It is disabled by
default, but a repository can enable it by setting
`daemon.uploadarch` configuration item to `true`.
@@ -258,7 +258,7 @@ Repositories can still be accessed by hostname though, assuming
they correspond to these IP addresses.
selectively enable/disable services per repository::
- To enable 'git-archive --remote' and disable 'git fetch' against
+ To enable 'git archive --remote' and disable 'git fetch' against
a repository, have the following in the configuration file in the
repository (that is the file 'config' next to 'HEAD', 'refs' and
'objects').
diff --git a/Documentation/git-diff-index.txt b/Documentation/git-diff-index.txt
index 84acf49..162cb74 100644
--- a/Documentation/git-diff-index.txt
+++ b/Documentation/git-diff-index.txt
@@ -72,7 +72,7 @@ In fact, `git diff-index --cached` *should* always be entirely equivalent to
actually doing a 'git write-tree' and comparing that. Except this one is much
nicer for the case where you just want to check where you are.
-So doing a 'git-diff-index --cached' is basically very useful when you are
+So doing a `git diff-index --cached` is basically very useful when you are
asking yourself "what have I already marked for being committed, and
what's the difference to a previous tree".
@@ -87,7 +87,7 @@ The non-cached version asks the question:
tree - index contents _and_ files that aren't up-to-date
which is obviously a very useful question too, since that tells you what
-you *could* commit. Again, the output matches the 'git-diff-tree -r'
+you *could* commit. Again, the output matches the 'git diff-tree -r'
output to a tee, but with a twist.
The twist is that if some file doesn't match the index, we don't have
diff --git a/Documentation/git-diff-tree.txt b/Documentation/git-diff-tree.txt
index 95c402a..a7e37b8 100644
--- a/Documentation/git-diff-tree.txt
+++ b/Documentation/git-diff-tree.txt
@@ -67,19 +67,19 @@ The following flags further affect the behavior when comparing
commits (but not trees).
-m::
- By default, 'git-diff-tree --stdin' does not show
+ By default, 'git diff-tree --stdin' does not show
differences for merge commits. With this flag, it shows
differences to that commit from all of its parents. See
also '-c'.
-s::
- By default, 'git-diff-tree --stdin' shows differences,
+ By default, 'git diff-tree --stdin' shows differences,
either in machine-readable form (without '-p') or in patch
form (with '-p'). This output can be suppressed. It is
only useful with '-v' flag.
-v::
- This flag causes 'git-diff-tree --stdin' to also show
+ This flag causes 'git diff-tree --stdin' to also show
the commit message before the differences.
include::pretty-options.txt[]
diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt
index 8dc873f..7e83288 100644
--- a/Documentation/git-for-each-ref.txt
+++ b/Documentation/git-for-each-ref.txt
@@ -82,7 +82,7 @@ objecttype::
The type of the object (`blob`, `tree`, `commit`, `tag`).
objectsize::
- The size of the object (the same as 'git-cat-file -s' reports).
+ The size of the object (the same as 'git cat-file -s' reports).
objectname::
The object name (aka SHA-1).
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index 07f211f..771807f 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -50,7 +50,7 @@ Housekeeping is required if there are too many loose objects or
too many packs in the repository. If the number of loose objects
exceeds the value of the `gc.auto` configuration variable, then
all loose objects are combined into a single pack using
-'git-repack -d -l'. Setting the value of `gc.auto` to 0
+'git repack -d -l'. Setting the value of `gc.auto` to 0
disables automatic packing of loose objects.
+
If the number of packs exceeds the value of `gc.autopacklimit`,
diff --git a/Documentation/git-get-tar-commit-id.txt b/Documentation/git-get-tar-commit-id.txt
index 94c434b..790af95 100644
--- a/Documentation/git-get-tar-commit-id.txt
+++ b/Documentation/git-get-tar-commit-id.txt
@@ -17,7 +17,7 @@ Acts as a filter, extracting the commit ID stored in archives created by
'git archive'. It reads only the first 1024 bytes of input, thus its
runtime is not influenced by the size of <tarfile> very much.
-If no commit ID is found, 'git-get-tar-commit-id' quietly exists with a
+If no commit ID is found, 'git get-tar-commit-id' quietly exists with a
return code of 1. This can happen if <tarfile> had not been created
using 'git archive' or if the first parameter of 'git archive' had been
a tree ID instead of a commit ID or tag.
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index ce41b65..f8df109 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -55,7 +55,7 @@ other display programs (see below).
+
The web browser can be specified using the configuration variable
'help.browser', or 'web.browser' if the former is not set. If none of
-these config variables is set, the 'git-web--browse' helper script
+these config variables is set, the 'git web--browse' helper script
(called by 'git help') will pick a suitable default. See
linkgit:git-web--browse[1] for more information about this.
diff --git a/Documentation/git-instaweb.txt b/Documentation/git-instaweb.txt
index 0771f25..a1f17df 100644
--- a/Documentation/git-instaweb.txt
+++ b/Documentation/git-instaweb.txt
@@ -44,7 +44,7 @@ OPTIONS
-b::
--browser::
The web browser that should be used to view the gitweb
- page. This will be passed to the 'git-web--browse' helper
+ page. This will be passed to the 'git web--browse' helper
script along with the URL of the gitweb instance. See
linkgit:git-web--browse[1] for more information about this. If
the script fails, the URL will be printed to stdout.
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index cb12f09..ff4063b 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -16,7 +16,7 @@ Shows the commit logs.
The command takes options applicable to the 'git rev-list'
command to control what is shown and how, and options applicable to
-the 'git-diff-*' commands to control how the changes
+the 'git diff-*' commands to control how the changes
each commit introduces are shown.
diff --git a/Documentation/git-ls-files.txt b/Documentation/git-ls-files.txt
index 92b21d7..7faba23 100644
--- a/Documentation/git-ls-files.txt
+++ b/Documentation/git-ls-files.txt
@@ -145,7 +145,7 @@ which case it outputs:
[<tag> ]<mode> <object> <stage> <file>
-'git-ls-files --unmerged' and 'git-ls-files --stage' can be used to examine
+'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine
detailed information on unmerged paths.
For an unmerged path, instead of recording a single mode/SHA1 pair,
diff --git a/Documentation/git-mailinfo.txt b/Documentation/git-mailinfo.txt
index a524252..e3d58cb 100644
--- a/Documentation/git-mailinfo.txt
+++ b/Documentation/git-mailinfo.txt
@@ -30,7 +30,7 @@ OPTIONS
whitespaces, (3) '[' up to ']', typically '[PATCH]', and
then prepends "[PATCH] ". This flag forbids this
munging, and is most useful when used to read back
- 'git-format-patch -k' output.
+ 'git format-patch -k' output.
-b::
When -k is not in effect, all leading strings bracketed with '['
diff --git a/Documentation/git-merge-index.txt b/Documentation/git-merge-index.txt
index 493f061..4d266de 100644
--- a/Documentation/git-merge-index.txt
+++ b/Documentation/git-merge-index.txt
@@ -43,7 +43,7 @@ code.
Typically this is run with a script calling git's imitation of
the 'merge' command from the RCS package.
-A sample script called 'git-merge-one-file' is included in the
+A sample script called 'git merge-one-file' is included in the
distribution.
ALERT ALERT ALERT! The git "merge object order" is different from the
diff --git a/Documentation/git-merge-one-file.txt b/Documentation/git-merge-one-file.txt
index 7360202..a163cfc 100644
--- a/Documentation/git-merge-one-file.txt
+++ b/Documentation/git-merge-one-file.txt
@@ -8,12 +8,12 @@ git-merge-one-file - The standard helper program to use with git-merge-index
SYNOPSIS
--------
-'git-merge-one-file'
+'git merge-one-file'
DESCRIPTION
-----------
This is the standard helper program to use with 'git merge-index'
-to resolve a merge after the trivial merge done with 'git-read-tree -m'.
+to resolve a merge after the trivial merge done with 'git read-tree -m'.
Author
------
diff --git a/Documentation/git-prune.txt b/Documentation/git-prune.txt
index 437d7c4..3bb7304 100644
--- a/Documentation/git-prune.txt
+++ b/Documentation/git-prune.txt
@@ -16,7 +16,7 @@ DESCRIPTION
NOTE: In most cases, users should run 'git gc', which calls
'git prune'. See the section "NOTES", below.
-This runs 'git-fsck --unreachable' using all the refs
+This runs 'git fsck --unreachable' using all the refs
available in `$GIT_DIR/refs`, optionally with additional set of
objects specified on the command line, and prunes all unpacked
objects unreachable from any of these head objects from the object database.
diff --git a/Documentation/git-read-tree.txt b/Documentation/git-read-tree.txt
index 469cd69..a31a4cb 100644
--- a/Documentation/git-read-tree.txt
+++ b/Documentation/git-read-tree.txt
@@ -298,7 +298,7 @@ populated. Here is an outline of how the algorithm works:
trivial rules ..
You would normally use 'git merge-index' with supplied
-'git-merge-one-file' to do this last step. The script updates
+'git merge-one-file' to do this last step. The script updates
the files in the working tree as it merges each path and at the
end of a successful merge.
diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt
index 50a5c96..538895c 100644
--- a/Documentation/git-repack.txt
+++ b/Documentation/git-repack.txt
@@ -71,7 +71,7 @@ other objects in that pack they already have locally.
-n::
Do not update the server information with
- 'git-update-server-info'. This option skips
+ 'git update-server-info'. This option skips
updating local catalog files needed to publish
this repository (or a direct copy of it)
over HTTP or FTP. See linkgit:git-update-server-info[1].
diff --git a/Documentation/git-rerere.txt b/Documentation/git-rerere.txt
index 8dab467..acc220a 100644
--- a/Documentation/git-rerere.txt
+++ b/Documentation/git-rerere.txt
@@ -37,7 +37,7 @@ its working state.
'clear'::
This resets the metadata used by rerere if a merge resolution is to be
-aborted. Calling 'git-am [--skip|--abort]' or 'git-rebase [--skip|--abort]'
+aborted. Calling 'git am [--skip|--abort]' or 'git rebase [--skip|--abort]'
will automatically invoke this command.
'diff'::
diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
index fff4cb8..82ae16e 100644
--- a/Documentation/git-rev-parse.txt
+++ b/Documentation/git-rev-parse.txt
@@ -74,7 +74,7 @@ OPTIONS
properly quoted for consumption by shell. Useful when
you expect your parameter to contain whitespaces and
newlines (e.g. when using pickaxe `-S` with
- 'git-diff-\*'). In contrast to the `--sq-quote` option,
+ 'git diff-\*'). In contrast to the `--sq-quote` option,
the command input is still interpreted as usual.
--not::
@@ -361,7 +361,7 @@ usage on the standard error stream, and exits with code 129.
Input Format
~~~~~~~~~~~~
-'git-rev-parse --parseopt' input format is fully text based. It has two parts,
+'git rev-parse --parseopt' input format is fully text based. It has two parts,
separated by a line that contains only `--`. The lines before the separator
(should be more than one) are used for the usage.
The lines after the separator describe the options.
diff --git a/Documentation/git-show-index.txt b/Documentation/git-show-index.txt
index deebdc8..8382fbe 100644
--- a/Documentation/git-show-index.txt
+++ b/Documentation/git-show-index.txt
@@ -17,7 +17,7 @@ Reads given idx file for packed git archive created with
'git pack-objects' command, and dumps its contents.
The information it outputs is subset of what you can get from
-'git-verify-pack -v'; this command only shows the packfile
+'git verify-pack -v'; this command only shows the packfile
offset and SHA1 of each object.
diff --git a/Documentation/git-show.txt b/Documentation/git-show.txt
index de83d6b..55e687a 100644
--- a/Documentation/git-show.txt
+++ b/Documentation/git-show.txt
@@ -16,7 +16,7 @@ Shows one or more objects (blobs, trees, tags and commits).
For commits it shows the log message and textual diff. It also
presents the merge commit in a special format as produced by
-'git-diff-tree --cc'.
+'git diff-tree --cc'.
For tags, it shows the tag message and the referenced objects.
diff --git a/Documentation/git-tag.txt b/Documentation/git-tag.txt
index 518bf98..31c78a8 100644
--- a/Documentation/git-tag.txt
+++ b/Documentation/git-tag.txt
@@ -131,7 +131,7 @@ and be done with it.
. The insane thing.
You really want to call the new version "X" too, 'even though'
-others have already seen the old one. So just use 'git-tag -f'
+others have already seen the old one. So just use 'git tag -f'
again, as if you hadn't already published the old one.
However, Git does *not* (and it should not) change tags behind
diff --git a/Documentation/git-tar-tree.txt b/Documentation/git-tar-tree.txt
index 7c116ec..3c786bd 100644
--- a/Documentation/git-tar-tree.txt
+++ b/Documentation/git-tar-tree.txt
@@ -24,7 +24,7 @@ a commit ID or tag ID. In the first case the current time is used as
modification time of each file in the archive. In the latter case the
commit time as recorded in the referenced commit object is used instead.
Additionally the commit ID is stored in a global extended pax header.
-It can be extracted using 'git-get-tar-commit-id'.
+It can be extracted using 'git get-tar-commit-id'.
OPTIONS
-------
diff --git a/Documentation/git-update-index.txt b/Documentation/git-update-index.txt
index c2477b9..e8c19be 100644
--- a/Documentation/git-update-index.txt
+++ b/Documentation/git-update-index.txt
@@ -206,7 +206,7 @@ into the index file.
. mode SP sha1 SP stage TAB path
+
This format is to put higher order stages into the
-index file and matches 'git-ls-files --stage' output.
+index file and matches 'git ls-files --stage' output.
To place a higher stage entry to the index, the path should
first be removed by feeding a mode=0 entry for the path, and
@@ -263,8 +263,8 @@ option. To unset, use `--no-assume-unchanged`.
The command looks at `core.ignorestat` configuration variable. When
this is true, paths updated with `git update-index paths...` and
paths updated with other git commands that update both index and
-working tree (e.g. 'git-apply --index', 'git-checkout-index -u',
-and 'git-read-tree -u') are automatically marked as "assume
+working tree (e.g. 'git apply --index', 'git checkout-index -u',
+and 'git read-tree -u') are automatically marked as "assume
unchanged". Note that "assume unchanged" bit is *not* set if
`git update-index --refresh` finds the working tree file matches
the index (use `git update-index --really-refresh` if you want
@@ -317,7 +317,7 @@ unreliable, this should be set to 'false' (see linkgit:git-config[1]).
This causes the command to ignore differences in file modes recorded
in the index and the file mode on the filesystem if they differ only on
executable bit. On such an unfortunate filesystem, you may
-need to use 'git-update-index --chmod='.
+need to use 'git update-index --chmod='.
Quite similarly, if `core.symlinks` configuration variable is set
to 'false' (see linkgit:git-config[1]), symbolic links are checked out
diff --git a/Documentation/git-upload-archive.txt b/Documentation/git-upload-archive.txt
index afe6595..f5f2b39 100644
--- a/Documentation/git-upload-archive.txt
+++ b/Documentation/git-upload-archive.txt
@@ -12,7 +12,7 @@ SYNOPSIS
DESCRIPTION
-----------
-Invoked by 'git-archive --remote' and sends a generated archive to the
+Invoked by 'git archive --remote' and sends a generated archive to the
other end over the git protocol.
This command is usually not invoked directly by the end user. The UI
diff --git a/Documentation/git-web--browse.txt b/Documentation/git-web--browse.txt
index 91a54a6..7572049 100644
--- a/Documentation/git-web--browse.txt
+++ b/Documentation/git-web--browse.txt
@@ -62,7 +62,7 @@ browser.<tool>.path
You can explicitly provide a full path to your preferred browser by
setting the configuration variable 'browser.<tool>.path'. For example,
you can configure the absolute path to firefox by setting
-'browser.firefox.path'. Otherwise, 'git-web--browse' assumes the tool
+'browser.firefox.path'. Otherwise, 'git web--browse' assumes the tool
is available in PATH.
browser.<tool>.cmd
@@ -71,7 +71,7 @@ browser.<tool>.cmd
When the browser, specified by options or configuration variables, is
not among the supported ones, then the corresponding
'browser.<tool>.cmd' configuration variable will be looked up. If this
-variable exists then 'git-web--browse' will treat the specified tool
+variable exists then 'git web--browse' will treat the specified tool
as a custom command and will use a shell eval to run the command with
the URLs passed as arguments.
diff --git a/Documentation/gitcore-tutorial.txt b/Documentation/gitcore-tutorial.txt
index 202a379..c005f37 100644
--- a/Documentation/gitcore-tutorial.txt
+++ b/Documentation/gitcore-tutorial.txt
@@ -428,7 +428,7 @@ $ git update-index hello
(note how we didn't need the `\--add` flag this time, since git knew
about the file already).
-Note what happens to the different 'git-diff-\*' versions here. After
+Note what happens to the different 'git diff-\*' versions here. After
we've updated `hello` in the index, `git diff-files -p` now shows no
differences, but `git diff-index -p HEAD` still *does* show that the
current state is different from the state we committed. In fact, now
@@ -1095,7 +1095,7 @@ The 'commit walkers' are sometimes also called 'dumb
transports', because they do not require any git aware smart
server like git Native transport does. Any stock HTTP server
that does not even support directory index would suffice. But
-you must prepare your repository with 'git-update-server-info'
+you must prepare your repository with 'git update-server-info'
to help dumb transport downloaders.
Once you fetch from the remote repository, you `merge` that
@@ -1260,7 +1260,7 @@ $ git ls-files --unmerged
The next step of merging is to merge these three versions of the
file, using 3-way merge. This is done by giving
-'git-merge-one-file' command as one of the arguments to
+'git merge-one-file' command as one of the arguments to
'git merge-index' command:
------------
@@ -1270,7 +1270,7 @@ ERROR: Merge conflict in hello
fatal: merge program failed
------------
-'git-merge-one-file' script is called with parameters to
+'git merge-one-file' script is called with parameters to
describe those three versions, and is responsible to leave the
merge results in the working tree.
It is a fairly straightforward shell script, and
@@ -1487,10 +1487,10 @@ If other people are pulling from your repository over dumb
transport protocols (HTTP), you need to keep this repository
'dumb transport friendly'. After `git init`,
`$GIT_DIR/hooks/post-update.sample` copied from the standard templates
-would contain a call to 'git-update-server-info'
+would contain a call to 'git update-server-info'
but you need to manually enable the hook with
`mv post-update.sample post-update`. This makes sure
-'git-update-server-info' keeps the necessary files up-to-date.
+'git update-server-info' keeps the necessary files up-to-date.
3. Push into the public repository from your primary
repository.
diff --git a/Documentation/gitdiffcore.txt b/Documentation/gitdiffcore.txt
index 5244925..dcdea54 100644
--- a/Documentation/gitdiffcore.txt
+++ b/Documentation/gitdiffcore.txt
@@ -23,7 +23,7 @@ that is easier to understand than the conventional kind.
The chain of operation
----------------------
-The 'git-diff-{asterisk}' family works by first comparing two sets of
+The 'git diff-{asterisk}' family works by first comparing two sets of
files:
- 'git diff-index' compares contents of a "tree" object and the
@@ -74,12 +74,12 @@ into another list. There are currently 5 such transformations:
- diffcore-pickaxe
- diffcore-order
-These are applied in sequence. The set of filepairs 'git-diff-{asterisk}'
+These are applied in sequence. The set of filepairs 'git diff-{asterisk}'
commands find are used as the input to diffcore-break, and
the output from diffcore-break is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
-format sections of the manual for 'git-diff-{asterisk}' commands) or
+format sections of the manual for 'git diff-{asterisk}' commands) or
diff-patch format.
@@ -87,7 +87,7 @@ diffcore-break: For Splitting Up "Complete Rewrites"
----------------------------------------------------
The second transformation in the chain is diffcore-break, and is
-controlled by the -B option to the 'git-diff-{asterisk}' commands. This is
+controlled by the -B option to the 'git diff-{asterisk}' commands. This is
used to detect a filepair that represents "complete rewrite" and
break such filepair into two filepairs that represent delete and
create. E.g. If the input contained this filepair:
@@ -123,7 +123,7 @@ diffcore-rename: For Detection Renames and Copies
This transformation is used to detect renames and copies, and is
controlled by the -M option (to detect renames) and the -C option
-(to detect copies as well) to the 'git-diff-{asterisk}' commands. If the
+(to detect copies as well) to the 'git diff-{asterisk}' commands. If the
input contained these filepairs:
------------------------------------------------
@@ -168,11 +168,11 @@ number after the "-M" or "-C" option (e.g. "-M8" to tell it to use
8/10 = 80%).
Note. When the "-C" option is used with `\--find-copies-harder`
-option, 'git-diff-{asterisk}' commands feed unmodified filepairs to
+option, 'git diff-{asterisk}' commands feed unmodified filepairs to
diffcore mechanism as well as modified ones. This lets the copy
detector consider unmodified files as copy source candidates at
the expense of making it slower. Without `\--find-copies-harder`,
-'git-diff-{asterisk}' commands can detect copies only if the file that was
+'git diff-{asterisk}' commands can detect copies only if the file that was
copied happened to have been modified in the same changeset.
@@ -223,7 +223,7 @@ diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
This transformation is used to find filepairs that represent
changes that touch a specified string, and is controlled by the
--S option and the `\--pickaxe-all` option to the 'git-diff-{asterisk}'
+-S option and the `\--pickaxe-all` option to the 'git diff-{asterisk}'
commands.
When diffcore-pickaxe is in use, it checks if there are
@@ -246,7 +246,7 @@ diffcore-order: For Sorting the Output Based on Filenames
This is used to reorder the filepairs according to the user's
(or project's) taste, and is controlled by the -O option to the
-'git-diff-{asterisk}' commands.
+'git diff-{asterisk}' commands.
This takes a text file each of whose lines is a shell glob
pattern. Filepairs that match a glob pattern on an earlier line
diff --git a/Documentation/githooks.txt b/Documentation/githooks.txt
index 45559fa..87e2c03 100644
--- a/Documentation/githooks.txt
+++ b/Documentation/githooks.txt
@@ -202,7 +202,7 @@ updated. If the hook exits with zero, updating of individual refs can
still be prevented by the <<update,'update'>> hook.
Both standard output and standard error output are forwarded to
-'git-send-pack' on the other end, so you can simply `echo` messages
+'git send-pack' on the other end, so you can simply `echo` messages
for the user.
[[update]]
@@ -301,7 +301,7 @@ updated values of the refs. You might consider it instead if you need
them.
When enabled, the default 'post-update' hook runs
-'git-update-server-info' to keep the information used by dumb
+'git update-server-info' to keep the information used by dumb
transports (e.g., HTTP) up-to-date. If you are publishing
a git repository that is accessible via HTTP, you should
probably enable this hook.
@@ -313,8 +313,8 @@ for the user.
pre-auto-gc
~~~~~~~~~~~
-This hook is invoked by 'git-gc --auto'. It takes no parameter, and
-exiting with non-zero status from this script causes the 'git-gc --auto'
+This hook is invoked by 'git gc --auto'. It takes no parameter, and
+exiting with non-zero status from this script causes the 'git gc --auto'
to abort.
GIT
diff --git a/Documentation/gitrepository-layout.txt b/Documentation/gitrepository-layout.txt
index 5c4700c..3cd32d6 100644
--- a/Documentation/gitrepository-layout.txt
+++ b/Documentation/gitrepository-layout.txt
@@ -151,7 +151,7 @@ info/refs::
This file helps dumb transports discover what refs are
available in this repository. If the repository is
published for dumb transports, this file should be
- regenerated by 'git-update-server-info' every time a tag
+ regenerated by 'git update-server-info' every time a tag
or branch is created or modified. This is normally done
from the `hooks/update` hook, which is run by the
'git-receive-pack' command when you 'git push' into the
--
1.6.6.218.g502b0
^ permalink raw reply related
* Re: [PATCH v2 0/4] Documentation style fixes
From: Thomas Rast @ 2010-01-10 12:10 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Jonathan Nieder
In-Reply-To: <7vfx6efox9.fsf@alter.siamese.dyndns.org>
Junio C Hamano wrote:
>
> I'd like to proceed with this series by (1) pulling from you and queuing
> the result in 'next', (2) asking other people (including Jonathan) to
> proofread and send necessary updates to the list, (3) asking you to check
> and queue these updates from others yourself and tell me to pull again to
> my 'next', and (4) merging the result to 'master' when done.
>
> Does it sound workable? Am I placing too much undue burden on you?
No, that's fine, and indeed I'm glad I'm not putting too much
conflict-resolution burden on you.
I took the not-yet-merged (I hope I understood the above right :-)
liberty of squashing fixes from Jonathan's review. I'll send the
interdiffs as a reply to this mail. They're now at
git://repo.or.cz/git/trast.git doc-style/for-next
(I'm leaving the old head in place for comparison). I'm gathering
incremental updates in
git://repo.or.cz/git/trast.git doc-style/pu
For now we have
Jonathan Nieder (2):
Documentation: git gc packs refs by default now
Documentation: tiny git config manual tweaks
Thomas Rast (1):
Documentation: show-files is now called git-ls-files
I'll also send the last one for review shortly, though it's rather
trivial.
--
Thomas Rast
trast@{inf,student}.ethz.ch
^ permalink raw reply
* Саня *** Ti-3 *** Бурим добавил Вас в друзья на сайте ВКонтакте.ру
From: ВКонтакте.ру @ 2010-01-10 11:42 UTC (permalink / raw)
To: Здравствуйте
Здравствуйте,
Саня *** Ti-3 *** Бурим добавил Вас в друзья на сайте ВКонтакте.ру
Вы можете зайти на сайт и просмотреть страницы Ваших друзей, используя
Ваш e-mail и автоматически созданный пароль: 6eoRw9MC
ВКонтакте.ру - сайт, который ежедневно позволяет десяткам миллионов людей находить старых друзей и оставаться с ними на связи, делиться фотографиями
и событиями из жизни.
Чтобы войти на сайт, пройдите по ссылке:
http://vk.com/login.php?regemail=git@vger.kernel.org#6eoRw9MC
Внимание: Ваша регистрация не будет активирована, если Вы проигнорируете
это приглашение.
Желаем удачи!
С уважением,
Администрация ВКонтакте.ру
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox