1. 29 7月, 2007 1 次提交
  2. 26 7月, 2007 1 次提交
  3. 25 7月, 2007 1 次提交
  4. 23 7月, 2007 1 次提交
    • J
      gitweb: Fix support for legacy gitweb config for snapshots · a781785d
      Jakub Narebski 提交于
      Earlier commit which cleaned up snapshot support and introduced
      support for multiple snapshot formats changed the format of
      $feature{'snapshot'}{'default'} (gitweb configuration) and
      gitweb.snapshot configuration variable (repository configuration).
      It supported old gitweb.snapshot values of 'gzip', 'bzip2' and 'zip'
      and tried to support, but failed to do that, old values of
      $feature{'snapshot'}{'default'}; at least those corresponding to
      old gitweb.snapshot values of 'gzip', 'bzip2' and 'zip', i.e.
        ['x-gzip', 'gz', 'gzip']
        ['x-bzip2', 'bz2', 'bzip2']
        ['x-zip', 'zip', '']
      
      This commit moves legacy configuration support out of feature_snapshot
      subroutine to separate filter_snapshot_fmts subroutine. The
      filter_snapshot_fmts is used on result on result of
      gitweb_check_feature('snapshot').  This way feature_snapshot deals
      _only_ with repository config.
      
      As a byproduct you can now use 'gzip' and 'bzip2' as aliases to 'tgz'
      and 'tbz2' also in $feature{'snapshot'}{'default'}, not only in
      gitweb.snapshot.
      
      While at it do some whitespace cleanup: use tabs for indent, but
      spaces for align.
      Noticed-by: NMatt McCutchen <hashproduct@gmail.com>
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Tested-by: NMatt McCutchen <hashproduct@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a781785d
  5. 22 7月, 2007 1 次提交
    • M
      gitweb: snapshot cleanups & support for offering multiple formats · a3c8ab30
      Matt McCutchen 提交于
      - Centralize knowledge about snapshot formats (mime types, extensions,
        commands) in %known_snapshot_formats and improve how some of that
        information is specified.  In particular, zip files are no longer a
        special case.
      
      - Add support for offering multiple snapshot formats to the user so
        that he/she can download a snapshot in the format he/she prefers.
        The site-wide or project configuration now gives a list of formats
        to offer, and if more than one format is offered, the "_snapshot_"
        link becomes something like "snapshot (_tar.bz2_ _zip_)".
      
      - If only one format is offered, a tooltip on the "_snapshot_" link
        tells the user what it is.
      
      - Fix out-of-date "tarball" -> "archive" in comment.
      
      Alert for gitweb site administrators: This patch changes the format of
      $feature{'snapshot'}{'default'} in gitweb_config.perl from a list of
      three pieces of information about a single format to a list of one or
      more formats you wish to offer from the set ('tgz', 'tbz2', 'zip').
      Update your gitweb_config.perl appropriately.  There was taken care
      for old-style gitweb configuration to work as it used to, but this
      backward compatibility works only for the values which correspond to
      gitweb.snapshot values of 'gzip', 'bzip2' and 'zip', i.e.
        ['x-gzip', 'gz', 'gzip']
        ['x-bzip2', 'bz2', 'bzip2']
        ['x-zip', 'zip', '']
      
      The preferred names for gitweb.snapshot in repository configuration
      have also changed from 'gzip' and 'bzip2' to 'tgz' and 'tbz2', but
      the old names are still recognized for compatibility.
      Signed-off-by: NMatt McCutchen <hashproduct@gmail.com>
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      a3c8ab30
  6. 20 7月, 2007 1 次提交
  7. 13 7月, 2007 1 次提交
  8. 12 7月, 2007 1 次提交
  9. 08 7月, 2007 4 次提交
  10. 13 6月, 2007 1 次提交
    • M
      gitweb: change filename/directory name of snapshots · 9a7d9410
      Matthias Lederhofer 提交于
      /.git or .git is removed from the project name and the
      basename of the remaining path is used as the beginning of
      the filename and as the directory in the archive.
      
      The regexp will actually not strip off /.git or .git if there
      wouldn't be anything left after removing it.
      
      Currently the full project name is used as directory in the
      archive and the basename is used as filename.  For example a
      repository named foo/bar/.git will have a archive named
      .git-<version>.* and extract to foo/bar/.git.  With this patch
      the file is named bar-<version>.* and extracts to bar.
      Signed-off-by: NMatthias Lederhofer <matled@gmx.net>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9a7d9410
  11. 11 6月, 2007 6 次提交
    • J
      gitweb: '--cc' for merges in 'commitdiff' view · cd030c3a
      Jakub Narebski 提交于
      Allow choosing between '-c' (combined diff) and '--cc' (compact
      combined) diff format in 'commitdiff' view for merge (multiparent)
      commits.  Default is now '--cc'.
      
      In the bottom part of navigation bar there is link allowing to change
      diff format: "combined" for '-c' (when using '--cc') and "compact" for
      '--cc' (when using '-c'), just on the right of "raw" link to
      'commitdiff_plain" view.
      
      About patchset part of diff --cc output: the difftree (whatchanged
      table) has "patch" links to anchors to individual patches (on the same
      page). The --cc option further compresses the patch output by
      omitting some hunks; when this optimization makes all hunks disappear,
      the patch is not shown (like in any other "empty diff" case). But the
      fact that patch has been simplified out is not reflected in the raw
      (difftree) part of diff output; the raw part is the same for '-c' and
      '--cc' options. As correcting difftree is rather out of the question,
      as it would require scanning patchset part before writing out
      difftree, we add "Simple merge" empty diffs as a place to have anchor
      to in place of those simplified out and removed patches.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      cd030c3a
    • J
      gitweb: Add links to blobdiffs in from-file/to-file header for merges · 91af4ce4
      Jakub Narebski 提交于
      Add links to diff to file ('blobdiff' view) for each of individual
      versions of the file in a merge commit to the from-file/to-file header
      in the patch part of combined 'commitdiff' view for merges.
      
      The from-file/to-file header for combined diff now looks like:
      
        --- _1_/_git-gui/git-gui.sh_
        --- _2_/_git-gui.sh_
        +++ b/_git-gui/git-gui.sh_
      
      where _<filename>_ link is link to appropriate version of a file
      ('blob' view), and _<n>_ is link to respective diff to mentioned
      version of a file ('blobdiff' view). There is even hint provided in
      the form of title attribute.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      91af4ce4
    • J
      gitweb: Create special from-file/to-file header for combined diff · deaa01a9
      Jakub Narebski 提交于
      Instead of using default, diff(1) like from-file/to-file header for
      combined diff (for a merge commit), which looks like:
      
        --- a/git-gui/git-gui.sh
        +++ b/_git-gui/git-gui.sh_
      
      (where _link_ denotes [hidden] hyperlink), create from-file(n)/to-file
      header, using "--- <n>/_<filename>_" for each of parents, e.g.:
      
        --- 1/_git-gui/git-gui.sh_
        --- 2/_git-gui.sh_
        +++ b/_git-gui/git-gui.sh_
      
      Test it on one of merge commits involving rename, e.g.
        95f97567c1887d77f3a46b42d8622c76414d964d (rename at top)
        5bac4a67 (file from one branch)
      
      This is mainly meant to easier see renames in a merge commit.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      deaa01a9
    • J
      gitweb: Split git_patchset_body into separate subroutines · 90921740
      Jakub Narebski 提交于
      This commit makes git_patchset_body easier to read, and reduces level of
      nesting and indent level. It adds more lines that it removes because of
      extra parameter passing in subroutines, and subroutine calls in
      git_patchset_body. Also because there are few added comments.
      
      Below there are descriptions of all split-off subroutines:
      
      Separate formatting "git diff" header into format_git_diff_header_line.
      While at it fix it so it always escapes pathname. It would be even more
      useful if we decide to use `--cc' for merges, and need to generate by
      hand empty patches for anchors.
      
      Separate formatting extended (git) diff header lines into
      format_extended_diff_header_line. This one is copied without changes.
      
      Separate formatting two-lines from-file/to-file diff header into
      format_diff_from_to_header subroutine. While at it fix it so it always
      escapes pathname. Beware calling convention: it takes _two_ lines.
      
      Separate generating %from and %to hashes (with info used among others to
      generate hyperlinks) into parse_from_to_diffinfo subroutine. This one is
      copied without changes.
      
      Separate checking if file was deleted (and among others therefore does
      not have link to the result file) into is_deleted subroutine. This would
      allow us to easily change the algotithm to find if file is_deleted in
      the result.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      90921740
    • J
      gitweb: Improve "next" link in commitdiff view · ada3e1f7
      Jakub Narebski 提交于
      Check if 'hp' (hash_parent) parameter to 'commitdiff' view is one of
      'h' (hash) commit parents, i.e. if commitdiff is of the form
      "<commit>^<n> <commit>", and mark it as such in the bottom part of
      navigation bar. The "next" link in commitdiff view was introduced
      in commit 151602df
      
      If 'hb' is n-th parent of 'h', show the following at the bottom
      of navigation bar:
        (from parent n: _commit_)
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ada3e1f7
    • J
      gitweb: Provide links to commitdiff to each parent in 'commitdiff' view · 47598d7a
      Jakub Narebski 提交于
      Since commit-fb1dde4a we show combined diff for merges in 'commitdiff'
      view, and since commit-208ecb2e also in 'commit' view. Sometimes
      though one would want to see diff to one of merge commit parents. It
      is easy in 'commit' view: in the commit header part there are "diff"
      links for each of parent header. This commit adds such links also for
      'commitdiff' view.
      
      Add to difftree / whatchanged table row with "1", "2", ... links to
      'commitdiff' view for diff with n-th parent for merge commits, as a
      table header.  This is visible only in 'comitdiff' view, and only for
      a merge commit (comit with more than one parent).
      
      To save space links are shown as "n", where "n" is number of a parent,
      and not as for example shortened (to 7 characters) sha1 of a parent
      commit.  To make it easier to discover what links is for, each link
      has 'title' attribute explaining the link.
      
      Note that one would need to remember that difftree table in 'commit'
      view has one less column (it doesn't have "patch" link column), if one
      would want to add such table header also in 'commit' view.
      
      Example output:
                                1       2       3
        Makefile      patch | diff1 | diff2 | diff3 | blob | history
        cache.h       patch | diff1 | diff2 | diff3 | blob | history
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      47598d7a
  12. 04 6月, 2007 1 次提交
  13. 24 5月, 2007 1 次提交
  14. 19 5月, 2007 2 次提交
  15. 18 5月, 2007 4 次提交
  16. 17 5月, 2007 3 次提交
  17. 15 5月, 2007 1 次提交
  18. 14 5月, 2007 2 次提交
  19. 13 5月, 2007 1 次提交
    • J
      gitweb: Test if $from_id and $to_id are defined before comparison · 2206537c
      Jakub Narebski 提交于
      Get rid of "Use of uninitialized value in string eq at
      gitweb/gitweb.perl line 2320" warning caused by the fact that "empty"
      patches, consisting only of extended git diff header and with patch
      body empty, such as patch for pure rename, does not have "index" line
      in extended diff header.  For such patches $from_id and $to_id, filled
      from parsing extended diff header, are undefined.  But such patches
      cannot be continuation patches.
      
      Test if $from_id and $to_id are defined before comparing them with
      $diffinfo.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      2206537c
  20. 10 5月, 2007 1 次提交
    • G
      gitweb: choose appropriate view for file type if a= parameter missing · 7f9778b1
      Gerrit Pape 提交于
      gitweb URLs use the a= parameter for the view to use on the given path, such
      as "blob" or "tree".  Currently, if a gitweb URL omits the a= parameter,
      gitweb just shows the top-level repository summary, regardless of the path
      given.  gitweb could instead choose an appropriate view based on the file
      type: blob for blobs (files), tree for trees (directories), and summary if
      no path given (the URL included no f= parameter, or an empty f= parameter).
      
      Apart from making gitweb more robust and supporting URL editing more easily,
      this change would aid the creation of shortcuts to git repositories using
      simple substitution, such as:
      http://example.org/git/?p=path/to/repo.git;hb=HEAD;f=%s
      
      With this patch, if given the hash through the h= parameter, or the hash
      base (hb=) and a filename (f=), gitweb uses cat-file -t to automatically set
      the a= parameter.
      
      This feature was requested by Josh Triplett through
       http://bugs.debian.org/410465Signed-off-by: NGerrit Pape <pape@smarden.org>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      7f9778b1
  21. 08 5月, 2007 5 次提交
    • J
      gitweb: Show combined diff for merge commits in 'commit' view · 208ecb2e
      Jakub Narebski 提交于
      When commit shown is a merge commit (has more than one parent),
      display combined difftree output (result of git-diff-tree -c).
      Earlier (since commit 549ab4a3)
      difftree output (against first parent) was not printed for merges.
      
      Examples of non-trivial merges:
        5bac4a67 (includes rename)
        addafaf9 (five parents)
        95f97567c1887d77f3a46b42d8622c76414d964d (evil merge)
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      208ecb2e
    • J
      gitweb: Show combined diff for merge commits in 'commitdiff' view · fb1dde4a
      Jakub Narebski 提交于
      When 'commitdiff' action is requested without 'hp' (hash parent)
      parameter, and commit given by 'h' (hash) parameter is merge commit,
      show merge as combined diff.
      
      Earlier for merge commits without 'hp' parameter diff to first parent
      was shown.
      
      Note that in compact combined (--cc) format 'uninteresting' hunks
      omission mechanism can make that there is no patch corresponding to
      line in raw format (difftree) output. That is why (at least for now)
      we use --combined and not --cc format for showing commitdiff for merge
      commits.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      fb1dde4a
    • J
      gitweb: Make it possible to use pre-parsed info in git_difftree_body · 493e01db
      Jakub Narebski 提交于
      Make it possible to use pre-parsed, or generated by hand, difftree
      info in git_difftree_body, similarly to how was and is it done in
      git_patchset_body.
      
      Use just introduced feature in git_commitdiff to parse difftree info
      (raw diff output) only once: difftree info is now parsed in
      git_commitdiff directly, and parsed information is passed to both
      git_difftree_body and git_patchset_body. (Till now only git_blobdiff
      made use of git_patchset_body ability to use pre-parsed or hand
      generated info.) Additionally this makes rename info for combined diff
      with renames (or copies) calculated only once in git_difftree_body;
      the $difftree is modified and git_patchset_body makes use of added
      info.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      493e01db
    • J
      gitweb: Add combined diff support to git_patchset_body · e72c0eaf
      Jakub Narebski 提交于
      Calling convention for combined diff similar to the one for
      git_difftree_body subroutine: difftree info (first parameter) must be
      result of calling git-diff-tree with -c/--cc option, and all parents
      of a commit must be passed as last parameters. See also description in
        "gitweb: Add combined diff support to git_difftree_body"
      
      This ability is not used yet.
      
      Generating "src" file name for renames in combined diff was separated
      into fill_from_file_info subroutine; git_difftree_body was modified to
      use it. Currently git_difftree_body and git_patchset_body fills this
      info separately.
      
      The from-file line in two-line from-file/to-file header is not
      hyperlinked: there can be more than one "from"/"src" file. This
      differs from HTML output of ordinary (not combined) diff.
      
      format_diff_line subroutine needs extra $from/$to parameters to format
      combined diff patch line correctly.
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      e72c0eaf
    • J
      gitweb: Add combined diff support to git_difftree_body · ed224dea
      Jakub Narebski 提交于
      You have to pass all parents as final parameters of git_difftree_body
      subroutine; the number of parents of a diff must be equal to the
      number derived from parsing git-diff-tree output, raw combined diff
      for git_difftree_body to display combined diff correctly (but it is
      not checked).
      
      Currently the possibility of displaying diffree of combined diff is
      not used in gitweb code; git_difftree_body is always caled for
      ordinary diff, and with only one parent.
      
      Description of output for combined diff:
      ----------------------------------------
      
      The difftree table for combined diff starts with a cell with pathname
      of changed blob (changed file), which if possible is hidden link
      (class="list") to the 'blob' view of final version (if it exists),
      like for difftree for ordinary diff. If file was deleted in the final
      commit then filename is not hyperlinked.
      
      There is no cell with single file status (new, deleted, mode change,
      rename), as for combined diff as there is no single status: different
      parents might have different status.
      
      If git_difftree_body was called from git_commitdiff (for 'commitdiff'
      action) there is inner link to anchor to appropriate fragment (patch)
      in patchset body; the "patch" link does not replace "diff" link like
      for ordinary diff.
      
      Each of "diff" links is in separate cell, contrary to output for
      ordinary diff in which all links are (at least for now) in a single
      cell.
      
      For each parent, if file was not present we leave cell empty. If file
      was deleted in the result, we provide link to 'blob' view. Otherwise
      we provide link to 'commitdiff' view, even if patch (diff) consist
      only of extended diff header, and contents is not changed (pure
      rename, pure mode change). The only difference is that link to
      "blobdiff" view with no contents change is with 'nochange' class.
      
      At last, there is provided link to current version of file as "blob"
      link, if the file was not deleted in the result, and lik to history of
      a file, if there exists one. (The link to file history might be
      confused, at least for now, by renames.)
      
      Note that git-diff-tree raw output dor combined diff does not provide
      filename before change for renames and copies; we use
      git_get_path_by_hash to get "src" filename for renames (this means
      additional call to git-ls-tree for a _whole_ tree).
      Signed-off-by: NJakub Narebski <jnareb@gmail.com>
      Signed-off-by: NJunio C Hamano <junkio@cox.net>
      ed224dea