1. 17 9月, 2007 3 次提交
  2. 14 9月, 2007 1 次提交
    • R
      archive: fix subst file generation · 760da960
      René Scharfe 提交于
      Before the strbuf conversion, result was a char pointer.  The if
      statement checked for it being not NULL, which meant that no
      "$Format:...$" string had been found and no replacement had to be
      made.  format_subst() returned NULL in that case -- the caller
      then simply kept the original file content, as it was unaffected
      by the expansion.
      
      The length of the string being 0 is not the same as the string
      being NULL (expansion to an empty string vs. no expansion at all),
      so checking result.len != 0 is not a full replacement for the old
      NULL check.
      
      However, I doubt the subtle optimization explained above resulted
      in a notable speed-up anyway.  Simplify the code and add the tail
      of the file to the expanded string unconditionally.
      
      [jc: added a test to expose the breakage this fixes]
      Signed-off-by: NRene Scharfe <rene.scharfe@lsrfire.ath.cx>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      760da960
  3. 11 9月, 2007 7 次提交
  4. 10 9月, 2007 6 次提交
    • J
      Merge branch 'rs/archive' · 6972ab7a
      Junio C Hamano 提交于
      * rs/archive:
        archive - leakfix for format_subst()
        Define NO_MEMMEM on Darwin as it lacks the function
        archive: rename attribute specfile to export-subst
        archive: specfile syntax change: "$Format:%PLCHLDR$" instead of just "%PLCHLDR" (take 2)
        add memmem()
        Remove unused function convert_sha1_file()
        archive: specfile support (--pretty=format: in archive files)
        Export format_commit_message()
      6972ab7a
    • J
      archive - leakfix for format_subst() · 20fbfd86
      Junio C Hamano 提交于
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      20fbfd86
    • J
      Merge branch 'sp/maint-no-thin' · 9784c5c5
      Junio C Hamano 提交于
      * sp/maint-no-thin:
        Make --no-thin the default in git-push to save server resources
        fix doc for --compression argument to pack-objects
        git-tag -s must fail if gpg cannot sign the tag.
      9784c5c5
    • S
      Make --no-thin the default in git-push to save server resources · a4503a15
      Shawn O. Pearce 提交于
      1) pushes happen less often than fetches, so the bandwidth saving is
         much less visible in that case overall.
      
      2) thin packs have to be complemented with missing delta bases to be
         valid, so many received thin packs will take more disk space.
      
      3) the bother of repacking should be distributed amongst "clients"
         i.e. fetchers and pushers as much as possible, and not the server
         being fetched or pushed, to keep disk and CPU usage low on the
         server.
      
      This is why a fetch should get thin packs but a push should not.
      
      Both Nico and I have been assuming that --no-thin was the default
      behavior of git-push ever since Nico introduced --fix-thin into the
      index-pack process, which allowed fetch and receive-pack to avoid
      exploding packfiles received during transfer.  This patch finally
      makes it so.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a4503a15
    • N
      fix doc for --compression argument to pack-objects · 05cc2ffc
      Nicolas Pitre 提交于
      Remove obsolete details (core.legacyheaders is always true now).
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      05cc2ffc
    • C
      git-tag -s must fail if gpg cannot sign the tag. · aba91192
      Carlos Rica 提交于
      Most of this patch code and message was written by Shawn O. Pearce.
      I made some tests to know what the problem was, and then I changed
      the code related with the SIGPIPE signal.
      
      If the user has misconfigured `user.signingkey` in their .git/config
      or just doesn't have any secret keys on their keyring and they ask
      for a signed tag with `git tag -s` we better make sure the resulting
      tag was actually signed by gpg.
      
      Prior versions of builtin git-tag allowed this failure to slip
      by without error as they were not checking the return value of
      the finish_command() so they did not notice when gpg exited with
      an error exit status.  They also did not fail if gpg produced an
      empty output or if read_in_full received an error from the read
      system call while trying to read the pipe back from gpg.
      
      Finally, we did not actually honor any return value from the do_sign
      function as it returns ssize_t but was being stored into an unsigned
      long.  This caused the compiler to optimize out the die condition,
      allowing git-tag to continue along and create the tag object.
      
      However, when gpg gets a wrong username, it exits before any read was done
      and then the writing process receives SIGPIPE and program is terminated.
      By ignoring this signal, anyway, the function write_or_die gets EPIPE from
      write_in_full and exits returning 0 to the system without a message.
      Here we better call to write_in_full directly so we can fail
      printing a message and return safely to the caller.
      
      With these issues fixed `git-tag -s` will now fail to create the
      tag and will report a non-zero exit status to its caller, thereby
      allowing automated helper scripts to detect (and recover from)
      failure if gpg is not working properly.
      Proposed-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NCarlos Rica <jasampler@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      aba91192
  5. 09 9月, 2007 4 次提交
  6. 08 9月, 2007 5 次提交
  7. 07 9月, 2007 10 次提交
  8. 06 9月, 2007 4 次提交
    • J
      Merge branch 'master' of git://repo.or.cz/git/git-p4 · b5ef6ac9
      Junio C Hamano 提交于
      * 'master' of git://repo.or.cz/git/git-p4:
        git-p4: Added support for automatically importing newly appearing perforce branches.
        git-p4: Cleanup; moved the (duplicated) code for turning a branch into a git ref (for example foo -> refs/remotes/p4/<project>/foo) into a separate method.
        git-p4: Cleanup; moved the code for the initial #head or revision import into a separate function, out of P4Sync.run.
        git-p4: Cleanup; Turn self.revision into a function local variable (it's not used anywhere outside the function).
        git-p4: Cleanup; moved the code to import a list of p4 changes using fast-import into a separate member function of P4Sync.
        git-p4: Cleanup; moved the code for getting a sorted list of p4 changes for a list of given depot paths into a standalone method.
        git-p4: After submission to p4 always synchronize from p4 again (into refs/remotes). Whether to rebase HEAD or not is still left as question to the end-user.
        git-p4: Always call 'p4 sync ...' before submitting to Perforce.
      b5ef6ac9
    • J
      Merge branch 'maint' · 7e2e69b7
      Junio C Hamano 提交于
      * maint:
        Include a git-push example for creating a remote branch
        Cleanup unnecessary file modifications in t1400-update-ref
        Makefile: Add cache-tree.h to the headers list
        Don't allow contrib/workdir/git-new-workdir to trash existing dirs
        git-apply: do not read past the end of buffer
      7e2e69b7
    • S
      Include a git-push example for creating a remote branch · 4e560158
      Shawn O. Pearce 提交于
      Many users get confused when `git push origin master:foo` works
      when foo already exists on the remote repository but are confused
      when foo doesn't exist as a branch and this form does not create
      the branch foo.
      
      This new example highlights the trick of including refs/heads/
      in front of the desired branch name to create a branch.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4e560158
    • S
      Cleanup unnecessary file modifications in t1400-update-ref · 432e93a1
      Shawn O. Pearce 提交于
      Kristian Høgsberg pointed out that the two file modifications
      we were doing during the 'creating initial files' step are not even
      used within the test suite.  This was actually confusing as we do
      not even need these changes for the tests to pass.  All that really
      matters here is the specific commit dates are used so that these
      appear in the branch's reflog, and that the dates are different so
      that the branch will update when asked and the reflog entry is
      also updated.  There is no need for the file modification.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      432e93a1