1. 24 2月, 2008 2 次提交
  2. 23 2月, 2008 1 次提交
    • J
      hash: fix lookup_hash semantics · 9ea0980a
      Jeff King 提交于
      We were returning the _address of_ the stored item (or NULL)
      instead of the item itself. While this sort of indirection
      is useful for insertion (since you can lookup and then
      modify), it is unnecessary for read-only lookup. Since the
      hash code splits these functions between the internal
      lookup_hash_entry function and the public lookup_hash
      function, it makes sense for the latter to provide what
      users of the library expect.
      
      The result of this was that the index caching returned bogus
      results on lookup. We unfortunately didn't catch this
      because we were returning a "struct cache_entry **" as a
      "void *", and accidentally assigning it to a "struct
      cache_entry *".
      
      As it happens, this actually _worked_ most of the time,
      because the entries were defined as:
      
        struct cache_entry {
      	  struct cache_entry *next;
      	  ...
        };
      
      meaning that interpreting a "struct cache_entry **" as a
      "struct cache_entry *" would yield an entry where all fields
      were totally bogus _except_ for the next pointer, which
      pointed to the actual cache entry. When walking the list, we
      would look at the bogus "name" field, which was unlikely to
      match our lookup, and then proceed to the "real" entry.
      
      The reading of bogus data was silently ignored most of the
      time, but could cause a segfault for some data (which seems
      to be more common on OS X).
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9ea0980a
  3. 22 2月, 2008 4 次提交
    • S
      git-gui: Focus insertion point at end of strings in repository chooser · 3baee1f3
      Shawn O. Pearce 提交于
      When selecting a local working directory for a new repository or a
      location to clone an existing repository into we now set the insert
      point at the end of the selected path, allowing the user to type in
      any additional parts of the path if they so desire.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      3baee1f3
    • S
      git-gui: Avoid hardcoded Windows paths in Cygwin package files · df4ec4cf
      Shawn O. Pearce 提交于
      When we are being built by the Cygwin package maintainers we need to
      embed the POSIX path to our library files and not the Windows path.
      Embedding the Windows path means all end-users who install our Cygwin
      package would be required to install Cygwin at the same Windows path
      as the package maintainer had Cygwin installed to.  This requirement
      is simply not user-friendly and may be infeasible for a large number
      of our users.
      
      We now try to auto-detect if the Tcl/Tk binary we will use at runtime
      is capable of translating POSIX paths into Windows paths the same way
      that cygpath does the translations.  If the Tcl/Tk binary gives us the
      same results then it understands the Cygwin path translation process
      and should be able to read our library files from a POSIX path name.
      
      If it does not give us the same answer as cygpath then the Tcl/Tk
      binary might actually be a native Win32 build (one that is not
      linked against Cygwin) and thus requires the native Windows path
      to our library files.  We can assume this is not a Cygwin package
      as the Cygwin maintainers do not currently ship a pure Win32 build
      of Tcl/Tk.
      
      Reported on the git mailing list by Jurko Gospodnetić.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      df4ec4cf
    • S
      git-gui: Default TCL_PATH to same location as TCLTK_PATH · 651fbba2
      Shawn O. Pearce 提交于
      Most users set TCLTK_PATH to tell git-gui where to find wish, but they
      fail to set TCL_PATH to the same Tcl installation.  We use the non-GUI
      tclsh during builds so headless systems are still able to create an
      index file and create message files without GNU msgfmt.  So it matters
      to us that we find a working TCL_PATH at build time.
      
      If TCL_PATH hasn't been set yet we can take a better guess about what
      tclsh executable to use by replacing 'wish' in the executable path with
      'tclsh'.  We only do this replacement on the filename part of the path,
      just in case the string "wish" appears in the directory paths.  Most of
      the time the tclsh will be installed alongside wish so this replacement
      is a sensible and safe default.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      651fbba2
    • S
      git-gui: Paper bag fix error dialogs opening over the main window · 85ec3e77
      Shawn O. Pearce 提交于
      If the main window is the only toplevel we have open then we
      don't have a valid grab right now, so we need to assume the
      best toplevel to use for the parent is ".".
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      85ec3e77
  4. 21 2月, 2008 4 次提交
  5. 20 2月, 2008 6 次提交
    • J
      send-email: squelch warning due to comparing undefined $_ to "" · 1ca3d6ed
      Jay Soffian 提交于
      The check to see if initial_reply_to is defined was also comparing $_ to
      "" for a reason I cannot ascertain (looking at the commit which made the
      change didn't provide enlightenment), but if $_ is undefined, perl
      generates a warning.
      Signed-off-by: NJay Soffian <jaysoffian@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      1ca3d6ed
    • K
      Rename git-core rpm to just git and rename the meta-pacakge to git-all. · 7c33d3a5
      Kristian Høgsberg 提交于
      This fixes my favorite annoyance with the git rpm packaging: don't pull
      in tla when I say yum install git!  You wouldn't expect yum install gcc
      to pull in gcc-gfortran, right?
      
      With this change, and blanket 'yum update' will automatically pull in the
      new 'git' package and push out the old 'git-core', and if the old 'git'
      package was installed 'git-all' will be pulled in instead.  A couple of
      things do break though: 'yum update git-core', because yum behaves
      differently when given a specific package name - it doesn't follow obsoletes.
      
      Instead, 'yum install git' will pull in the new git rpm, which will then
      push out the old 'git-core'.  Similarly, to get the newest version of
      the meta package, 'yum install git-all' will install git-all, which then
      pushes out the old 'git' meta package.
      Signed-off-by: NKristian Høgsberg <krh@redhat.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      7c33d3a5
    • J
      push: document the status output · 066a5268
      Jeff King 提交于
      The output was meant to be a balance of self-explanatory and
      terse. In case we have erred too far on the terse side, it
      doesn't hurt to explain in more detail what each line means.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      066a5268
    • J
      Documentation/push: clarify matching refspec behavior · 68d06c52
      Jeff King 提交于
      The previous text was correct, but it was easy to miss the
      fact that we are talking about "matching" refs. That is, the
      text can be parsed as "we push the union of the sets
      of remote and local heads" and not "we push the intersection
      of the sets of remote and local heads". (The former actually
      doesn't make sense if you think about it, since we don't
      even _have_ some of those heads). A careful reading would
      reveal the correct meaning, but it makes sense to be as
      explicit as possible in documentation.
      
      We also explicitly use and introduce the term "matching";
      this is a term discussed on the list, and it seems useful
      to for users to be able to refer to this behavior by name.
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      68d06c52
    • J
      push: indicate partialness of error message · 2b8130c3
      Jeff King 提交于
      The existing message indicates that an error occured during
      push, but it is unclear whether _any_ refs were actually
      pushed (even though the status table above shows which were
      pushed successfully and which were not, the message "failed
      to push" implies a total failure). By indicating that "some
      refs" failed, we hopefully indicate to the user that the
      table above contains the details.
      
      We could also put in an explicit "see above for details"
      message, but it seemed to clutter the output quite a bit
      (both on a line of its own, or at the end of the error line,
      which inevitably wraps).
      
      This could also be made more fancy if the transport
      mechanism passed back more details on how many refs
      succeeded and failed:
      
        error: failed to push %d out of %d refs to '%s'
      Signed-off-by: NJeff King <peff@peff.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      2b8130c3
    • W
      git-gui: relax "dirty" version detection · 2c2a3782
      Wincent Colaiuta 提交于
      "git gui" would complain at launch if the local version of Git was
      "1.5.4.2.dirty". Loosen the regular expression to look for either
      "-dirty" or ".dirty", thus eliminating spurious warnings.
      Signed-off-by: NWincent Colaiuta <win@wincent.com>
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      2c2a3782
  6. 17 2月, 2008 4 次提交
  7. 16 2月, 2008 15 次提交
  8. 14 2月, 2008 4 次提交