1. 12 3月, 2007 1 次提交
  2. 31 12月, 2006 3 次提交
    • S
      Use /dev/null for update hook stdin. · 95d3c4f5
      Shawn O. Pearce 提交于
      Currently the update hook invoked by receive-pack has its stdin
      connected to the pushing client.  The hook shouldn't attempt to
      read from this stream, and doing so may consume data that was
      meant for receive-pack.  Instead we should give the update hook
      /dev/null as its stdin, ensuring that it always receives EOF and
      doesn't disrupt the protocol if it attempts to read any data.
      
      The post-update hook is similar, as it gets invoked with /dev/null
      on stdin to prevent the hook from reading data from the client.
      Previously we had invoked it with stdout also connected to /dev/null,
      throwing away anything on stdout, to prevent client protocol errors.
      Instead we should redirect stdout to stderr, like we do with the
      update hook.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      95d3c4f5
    • S
      Redirect update hook stdout to stderr. · cd83c74c
      Shawn O. Pearce 提交于
      If an update hook outputs to stdout then that output will be sent
      back over the wire to the push client as though it were part of
      the git protocol.  This tends to cause protocol errors on the
      client end of the connection, as the hook output is not expected
      in that context.  Most hook developers work around this by making
      sure their hook outputs everything to stderr.
      
      But hooks shouldn't need to perform such special behavior.  Instead
      we can just dup stderr to stdout prior to invoking the update hook.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      cd83c74c
    • S
      Remove unnecessary argc parameter from run_command_v. · 9b0b5093
      Shawn O. Pearce 提交于
      The argc parameter is never used by the run_command_v family of
      functions.  Instead they require that the passed argv[] be NULL
      terminated so they can rely on the operating system's execvp
      function to correctly pass the arguments to the new process.
      
      Making the caller pass the argc is just confusing, as the caller
      could be mislead into believing that the argc might take precendece
      over the argv, or that the argv does not need to be NULL terminated.
      So goodbye argc.  Don't come back.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      9b0b5093
  3. 05 3月, 2006 1 次提交
    • J
      Const tightening. · 9201c707
      Junio C Hamano 提交于
      Mark Wooding noticed there was a type mismatch warning in git.c; this
      patch does things slightly differently (mostly tightening const) and
      was what I was holding onto, waiting for the setup-revisions change
      to be merged into the master branch.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      9201c707
  4. 14 1月, 2006 1 次提交
    • M
      Exec git programs without using PATH. · 77cb17e9
      Michal Ostrowski 提交于
      The git suite may not be in PATH (and thus programs such as
      git-send-pack could not exec git-rev-list).  Thus there is a need for
      logic that will locate these programs.  Modifying PATH is not
      desirable as it result in behavior differing from the user's
      intentions, as we may end up prepending "/usr/bin" to PATH.
      
      - git C programs will use exec*_git_cmd() APIs to exec sub-commands.
      - exec*_git_cmd() will execute a git program by searching for it in
        the following directories:
      	1. --exec-path (as used by "git")
      	2. The GIT_EXEC_PATH environment variable.
      	3. $(gitexecdir) as set in Makefile (default value $(bindir)).
      - git wrapper will modify PATH as before to enable shell scripts to
        invoke "git-foo" commands.
      
      Ideally, shell scripts should use the git wrapper to become independent
      of PATH, and then modifying PATH will not be necessary.
      
      [jc: with minor updates after a brief review.]
      Signed-off-by: NMichal Ostrowski <mostrows@watson.ibm.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      77cb17e9
  5. 08 12月, 2005 1 次提交
  6. 03 8月, 2005 1 次提交
  7. 01 8月, 2005 1 次提交
    • J
      [PATCH] Added hook in git-receive-pack · b1bf95bb
      Josef Weidendorfer 提交于
      Just before updating a ref,
      
          $GIT_DIR/hooks/update refname old-sha1 new-sha1
      
      is called if executable.  The hook can decline the ref to be
      updated by exiting with a non-zero status, or allow it to be
      updated by exiting with a zero status.  The mechanism also
      allows e.g sending of a mail with pushed commits on the remote
      repository.
      
      Documentation update with an example hook is included.
      
      jc: The credits of the basic idea and initial implementation go
      to Josef, but I ended up rewriting major parts of his patch, so
      bugs are all mine.  Also I changed the semantics for the hook
      from his original version (which were post-update hook) so that
      the hook can optionally decline to update the ref, and also can
      be used to implement the overall cleanups.  The latter was
      primarily to implement a suggestion from Linus that calling
      update-server-info should be made optional.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      b1bf95bb