1. 08 4月, 2009 1 次提交
  2. 11 2月, 2009 1 次提交
  3. 26 1月, 2009 1 次提交
  4. 22 1月, 2009 1 次提交
    • J
      chain kill signals for cleanup functions · 4a16d072
      Jeff King 提交于
      If a piece of code wanted to do some cleanup before exiting
      (e.g., cleaning up a lockfile or a tempfile), our usual
      strategy was to install a signal handler that did something
      like this:
      
        do_cleanup(); /* actual work */
        signal(signo, SIG_DFL); /* restore previous behavior */
        raise(signo); /* deliver signal, killing ourselves */
      
      For a single handler, this works fine. However, if we want
      to clean up two _different_ things, we run into a problem.
      The most recently installed handler will run, but when it
      removes itself as a handler, it doesn't put back the first
      handler.
      
      This patch introduces sigchain, a tiny library for handling
      a stack of signal handlers. You sigchain_push each handler,
      and use sigchain_pop to restore whoever was before you in
      the stack.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      4a16d072
  5. 21 12月, 2008 1 次提交
  6. 04 12月, 2008 1 次提交
  7. 14 8月, 2008 1 次提交
  8. 06 7月, 2008 1 次提交
    • M
      Retire 'stupid' merge strategy · 51add76e
      Miklos Vajna 提交于
      As pointed out by Linus, this strategy tries to take the best merge
      base, but 'recursive' just does it better. If one needs something more
      than 'resolve' then he/she should really use 'recursive' and not
      'stupid'.
      
      Cf. Message-ID: <alpine.LFD.1.10.0807030947360.18105@woody.linux-foundation.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      51add76e
  9. 24 5月, 2008 2 次提交
  10. 29 2月, 2008 1 次提交
    • J
      use build-time SHELL_PATH in test scripts · 7cf7f54a
      Jeff King 提交于
      The top-level Makefile now creates a GIT-BUILD-OPTIONS file
      which stores any options selected by the make process that
      may be of use to further parts of the build process.
      Specifically, we store the SHELL_PATH so that it can be used
      by tests to construct shell scripts on the fly.
      
      The format of the GIT-BUILD-OPTIONS file is Bourne shell,
      and it is sourced by test-lib.sh; all tests can rely on just
      having $SHELL_PATH correctly set in the environment.
      
      The GIT-BUILD-OPTIONS file is written every time the
      toplevel 'make' is invoked. Since the only users right now
      are the test scripts, there's no drawback to updating its
      timestamp. If something build-related depends on this, we
      can do a trick similar to the one used by GIT-CFLAGS.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7cf7f54a
  11. 10 2月, 2008 1 次提交
  12. 21 12月, 2007 1 次提交
  13. 17 12月, 2007 1 次提交
  14. 15 12月, 2007 1 次提交
  15. 11 12月, 2007 1 次提交
  16. 03 12月, 2007 1 次提交
  17. 23 11月, 2007 1 次提交
  18. 31 10月, 2007 1 次提交
  19. 30 10月, 2007 1 次提交
  20. 16 10月, 2007 1 次提交
  21. 14 10月, 2007 1 次提交
  22. 28 9月, 2007 1 次提交
    • S
      git-gui: Support a native Mac OS X application bundle · 72a8e81d
      Shawn O. Pearce 提交于
      If we are building on Darwin (sometimes known as Mac OS X) and we
      find the Mac OS X Tk.framework in the expected location we build
      a proper Mac OS X application bundle with icons and info list.  The
      git-gui and git-citool commands are modified to be very short shell
      scripts that just execute the application bundle, starting Tk with
      our own info list and icon set.
      
      Although the Makefile change here is rather large it makes for a
      much more pleasant user experience on Mac OS X as git-gui now has
      its own icon on the dock, in the standard tk_messageBox dialogs,
      and the application name now says "Git Gui" instead of "Wish" in
      locations such as the menu bar and the alt-tab window.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      72a8e81d
  23. 26 9月, 2007 1 次提交
    • M
      Move convert-objects to contrib. · 2ecb5ea2
      Matt Kraai 提交于
      convert-objects was needed to convert from an old-style repository,
      which hashed the compressed contents and used a different date format.
      Such repositories are presumably no longer common and, if such
      conversions are necessary, should be done by writing a frontend for
      git-fast-import.
      
      Linus, the original author, is OK with moving it to contrib.
      Signed-off-by: NMatt Kraai <kraai@ftbfs.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2ecb5ea2
  24. 04 8月, 2007 1 次提交
  25. 01 7月, 2007 1 次提交
    • Add git-stash script · f2c66ed1
      しらいしななこ 提交于
      When my boss has something to show me and I have to update, for some
      reason I am always in the middle of doing something else, and git pull
      command refuses to work in such a case.
      
      I wrote this little script to save the changes I made, perform the
      update, and then come back to where I was, but on top of the updated
      commit.
      
      This is how you would use the script:
      
        $ git stash
        $ git pull
        $ git stash apply
      
      [jc: with a few fixlets from the list]
      Signed-off-by: NNanako Shiraishi <nanako3@bluebottle.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f2c66ed1
  26. 27 6月, 2007 1 次提交
  27. 16 6月, 2007 1 次提交
  28. 11 6月, 2007 1 次提交
  29. 06 6月, 2007 1 次提交
  30. 04 6月, 2007 1 次提交
  31. 27 5月, 2007 1 次提交
    • L
      Add git-submodule command · 70c7ac22
      Lars Hjemli 提交于
      This command can be used to initialize, update and inspect submodules. It
      uses a .gitmodules file, readable by git-config, in the top level directory
      of the 'superproject' to specify a mapping between submodule paths and
      repository url.
      
      Example .gitmodules layout:
      
      [module "git"]
      	url = git://git.kernel.org/pub/scm/git/git.git
      
      With this entry in .gitmodules (and a commit reference in the index entry for
      the path "git"), the command 'git submodule init' will clone the repository
      at kernel.org into the directory "git".
      
      Known issues
      ============
      There is currently no way to override the url found in the .gitmodules file,
      except by manually creating the subproject repository. The place to fix this
      in the script has a rather long comment about a possible plan.
      
      Funny paths will be quoted in the output from git-ls-files, but git-submodule
      does not attempt to unquote (or even detect the presence of) such paths.
      Signed-off-by: NLars Hjemli <hjemli@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      70c7ac22
  32. 25 5月, 2007 2 次提交
    • J
      Remove git-applypatch · 59c8e2cb
      Junio C Hamano 提交于
      The previous one removed git-applymbox, which was the sole user
      of this tool.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      59c8e2cb
    • P
      git-applymbox: Remove command · d45cc6e2
      Petr Baudis 提交于
      I believe noone uses git-applymbox, and noone definitely should, since it
      is supposed to be completely superseded and everything by its younger
      cousin git-am. The only known person in the universe to use it was Linus
      and he declared some time ago that he will try to use git-am instead in his
      famous dotest script.
      
      The trouble is that git-applymbox existence creates confusing UI. I'm a bit
      like a recycled newbie to the git porcelain and *I* was confused by
      git-applymbox primitiveness until I've realized a while later that I'm of
      course using the wrong command.
      Signed-off-by: NPetr Baudis <pasky@suse.cz>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d45cc6e2
  33. 08 5月, 2007 1 次提交
    • S
      git-gui: Refactor into multiple files to save my sanity · f522c9b5
      Shawn O. Pearce 提交于
      I'm finding it difficult to work with a 6,000+ line Tcl script
      and not go insane while looking for a particular block of code.
      Since most of the program is organized into different units of
      functionality and not all users will need all units immediately
      on startup we can improve things by splitting procs out into
      multiple files and let auto_load handle things for us.
      
      This should help not only to better organize the source, but
      it may also improve startup times for some users as the Tcl
      parser does not need to read as much script before it can show
      the UI.  In many cases the user can avoid reading at least half
      of git-gui now.
      
      Unfortunately we now need a library directory in our runtime
      location.  This is currently assumed to be $(sharedir)/git-gui/lib
      and its expected that the Makefile invoker will setup some sort of
      reasonable sharedir value for us, or let us assume its going to be
      $(gitexecdir)/../share.
      
      We now also require a tclsh (in TCL_PATH) to just run the Makefile,
      as we use tclsh to generate the tclIndex for our lib directory.  I'm
      hoping this is not an unncessary burden on end-users who are building
      from source.
      
      I haven't really made any functionality changes here, this is just a
      huge migration of code from one file to many smaller files.  All of
      the new changes are to setup the library path and install the library
      files.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      f522c9b5
  34. 03 5月, 2007 1 次提交
    • S
      git-gui: Track our own embedded values and rebuild when they change · c6a5e403
      Shawn O. Pearce 提交于
      Like core-Git we now track the values that we embed into our shell
      script wrapper, and we "recompile" that wrapper if they are changed.
      This concept was lifted from git.git's Makefile, where a similar
      thing was done by Eygene Ryabinkin.  Too bad it wasn't just done
      here in git-gui from the beginning, as the git.git Makefile support
      for GIT-GUI-VARS was really just because git-gui doesn't do it on
      its own.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      c6a5e403
  35. 14 4月, 2007 1 次提交
    • J
      Add basic infrastructure to assign attributes to paths · d0bfd026
      Junio C Hamano 提交于
      This adds the basic infrastructure to assign attributes to
      paths, in a way similar to what the exclusion mechanism does
      based on $GIT_DIR/info/exclude and .gitignore files.
      
      An attribute is just a simple string that does not contain any
      whitespace.  They can be specified in $GIT_DIR/info/attributes
      file, and .gitattributes file in each directory.
      
      Each line in these files defines a pattern matching rule.
      Similar to the exclusion mechanism, a later match overrides an
      earlier match in the same file, and entries from .gitattributes
      file in the same directory takes precedence over the ones from
      parent directories.  Lines in $GIT_DIR/info/attributes file are
      used as the lowest precedence default rules.
      
      A line is either a comment (an empty line, or a line that begins
      with a '#'), or a rule, which is a whitespace separated list of
      tokens.  The first token on the line is a shell glob pattern.
      The rest are names of attributes, each of which can optionally
      be prefixed with '!'.  Such a line means "if a path matches this
      glob, this attribute is set (or unset -- if the attribute name
      is prefixed with '!').  For glob matching, the same "if the
      pattern does not have a slash in it, the basename of the path is
      matched with fnmatch(3) against the pattern, otherwise, the path
      is matched with the pattern with FNM_PATHNAME" rule as the
      exclusion mechanism is used.
      
      This does not define what an attribute means.  Tying an
      attribute to various effects it has on git operation for paths
      that have it will be specified separately.
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      d0bfd026
  36. 12 4月, 2007 1 次提交
    • N
      simple random data generator for tests · 2dca1af4
      Nicolas Pitre 提交于
      Reliance on /dev/urandom produces test vectors that are, well, random.
      This can cause problems impossible to track down when the data is
      different from one test invokation to another.
      
      The goal is not to have random data to test, but rather to have a
      convenient way to create sets of large files with non compressible and
      non deltifiable data in a reproducible way.
      Signed-off-by: NNicolas Pitre <nico@cam.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      2dca1af4
  37. 07 4月, 2007 1 次提交
    • J
      A new merge stragety 'subtree'. · 68faf689
      Junio C Hamano 提交于
      This merge strategy largely piggy-backs on git-merge-recursive.
      When merging trees A and B, if B corresponds to a subtree of A,
      B is first adjusted to match the tree structure of A, instead of
      reading the trees at the same level.  This adjustment is also
      done to the common ancestor tree.
      
      If you are pulling updates from git-gui repository into git.git
      repository, the root level of the former corresponds to git-gui/
      subdirectory of the latter.  The tree object of git-gui's toplevel
      is wrapped in a fake tree object, whose sole entry has name 'git-gui'
      and records object name of the true tree, before being used by
      the 3-way merge code.
      
      If you are merging the other way, only the git-gui/ subtree of
      git.git is extracted and merged into git-gui's toplevel.
      
      The detection of corresponding subtree is done by comparing the
      pathnames and types in the toplevel of the tree.
      
      Heuristics galore!  That's the git way ;-).
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      68faf689
  38. 01 4月, 2007 1 次提交