Merge branch 'jn/gitweb-plackup'
authorJunio C Hamano <gitster@pobox.com>
Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 18 Jun 2010 18:16:55 +0000 (11:16 -0700)
* jn/gitweb-plackup:
git-instaweb: Add support for running gitweb via 'plackup'
git-instaweb: Wait for server to start before running web browser
git-instaweb: Remove pidfile after stopping web server
git-instaweb: Configure it to work with new gitweb structure
git-instaweb: Put httpd logs in a "$httpd_only" subdirectory
gitweb: Set default destination directory for installing gitweb in Makefile
gitweb: Move static files into seperate subdirectory

1  2 
Makefile
gitweb/static/gitweb.css
diff --combined Makefile
index a07333b7c9bba3ada128dbf4dcdcaa0dd88d5ab2,cc2b3b147dc892fb7fb13234510901616284ecea..0a8dff3a1ab8427ece9dcdb7d3fb505132f09cba
+++ b/Makefile
@@@ -272,6 -272,7 +272,7 @@@ mandir = share/ma
  infodir = share/info
  gitexecdir = libexec/git-core
  sharedir = $(prefix)/share
+ gitwebdir = $(sharedir)/gitweb
  template_dir = share/git-core/templates
  htmldir = share/doc/git-doc
  ifeq ($(prefix),/usr)
@@@ -627,7 -628,6 +628,7 @@@ LIB_OBJS += tree-diff.
  LIB_OBJS += tree.o
  LIB_OBJS += tree-walk.o
  LIB_OBJS += unpack-trees.o
 +LIB_OBJS += url.o
  LIB_OBJS += usage.o
  LIB_OBJS += userdiff.o
  LIB_OBJS += utf8.o
@@@ -899,7 -899,6 +900,7 @@@ ifeq ($(uname_S),NetBSD
        HAVE_PATHS_H = YesPlease
  endif
  ifeq ($(uname_S),AIX)
 +      DEFAULT_PAGER = more
        NO_STRCASESTR=YesPlease
        NO_MEMMEM = YesPlease
        NO_MKDTEMP = YesPlease
@@@ -1041,6 -1040,7 +1042,6 @@@ ifneq (,$(findstring MINGW,$(uname_S))
        NO_STRTOUMAX = YesPlease
        NO_MKDTEMP = YesPlease
        NO_MKSTEMPS = YesPlease
 -      SNPRINTF_RETURNS_BOGUS = YesPlease
        NO_SVN_TESTS = YesPlease
        NO_PERL_MAKEMAKER = YesPlease
        RUNTIME_PREFIX = YesPlease
@@@ -1077,7 -1077,6 +1078,7 @@@ endi
  -include config.mak
  
  ifdef CHECK_HEADER_DEPENDENCIES
 +COMPUTE_HEADER_DEPENDENCIES =
  USE_COMPUTED_HEADER_DEPENDENCIES =
  endif
  
@@@ -1444,6 -1443,7 +1445,7 @@@ gitexecdir_SQ = $(subst ','\'',$(gitexe
  template_dir_SQ = $(subst ','\'',$(template_dir))
  htmldir_SQ = $(subst ','\'',$(htmldir))
  prefix_SQ = $(subst ','\'',$(prefix))
+ gitwebdir_SQ = $(subst ','\'',$(gitwebdir))
  
  SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
  PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
@@@ -1580,45 -1580,38 +1582,38 @@@ gitweb
        $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all
  
  ifdef JSMIN
- GITWEB_PROGRAMS += gitweb/gitweb.min.js
- GITWEB_JS = gitweb/gitweb.min.js
+ GITWEB_PROGRAMS += gitweb/static/gitweb.min.js
+ GITWEB_JS = gitweb/static/gitweb.min.js
  else
- GITWEB_JS = gitweb/gitweb.js
+ GITWEB_JS = gitweb/static/gitweb.js
  endif
  ifdef CSSMIN
- GITWEB_PROGRAMS += gitweb/gitweb.min.css
- GITWEB_CSS = gitweb/gitweb.min.css
+ GITWEB_PROGRAMS += gitweb/static/gitweb.min.css
+ GITWEB_CSS = gitweb/static/gitweb.min.css
  else
- GITWEB_CSS = gitweb/gitweb.css
+ GITWEB_CSS = gitweb/static/gitweb.css
  endif
  OTHER_PROGRAMS +=  gitweb/gitweb.cgi  $(GITWEB_PROGRAMS)
  gitweb/gitweb.cgi: gitweb/gitweb.perl $(GITWEB_PROGRAMS)
        $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
  
  ifdef JSMIN
- gitweb/gitweb.min.js: gitweb/gitweb.js
+ gitweb/static/gitweb.min.js: gitweb/static/gitweb.js
        $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
  endif # JSMIN
  ifdef CSSMIN
- gitweb/gitweb.min.css: gitweb/gitweb.css
+ gitweb/static/gitweb.min.css: gitweb/static/gitweb.css
        $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
  endif # CSSMIN
  
  
- git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/gitweb.js
+ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/static/gitweb.js
        $(QUIET_GEN)$(RM) $@ $@+ && \
        sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
            -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
            -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-           -e '/@@GITWEB_CGI@@/r gitweb/gitweb.cgi' \
-           -e '/@@GITWEB_CGI@@/d' \
-           -e '/@@GITWEB_CSS@@/r $(GITWEB_CSS)' \
-           -e '/@@GITWEB_CSS@@/d' \
-           -e '/@@GITWEB_JS@@/r $(GITWEB_JS)' \
-           -e '/@@GITWEB_JS@@/d' \
+           -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
            -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
-             -e 's|@@GITWEB_CSS_NAME@@|$(GITWEB_CSS)|' \
-             -e 's|@@GITWEB_JS_NAME@@|$(GITWEB_JS)|' \
            $@.sh > $@+ && \
        chmod +x $@+ && \
        mv $@+ $@
@@@ -1670,10 -1663,7 +1665,10 @@@ git.o git.spec 
  
  TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
  GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS) $(PROGRAM_OBJS) $(TEST_OBJS) \
 -      git.o http.o http-walker.o remote-curl.o
 +      git.o
 +ifndef NO_CURL
 +      GIT_OBJS += http.o http-walker.o remote-curl.o
 +endif
  XDIFF_OBJS = xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \
        xdiff/xmerge.o xdiff/xpatience.o
  OBJECTS := $(GIT_OBJS) $(XDIFF_OBJS)
@@@ -1988,6 -1978,7 +1983,7 @@@ install: al
        $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
  ifndef NO_PERL
        $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
+       $(MAKE) -C gitweb gitwebdir=$(gitwebdir_SQ) install
  endif
  ifndef NO_PYTHON
        $(MAKE) -C git_remote_helpers prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
@@@ -2013,13 -2004,12 +2009,13 @@@ endi
                ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
                cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
          done; } && \
 -      { for p in $(REMOTE_CURL_ALIASES); do \
 +      { test x"$(REMOTE_CURL_ALIASES)" = x || \
 +              { for p in $(REMOTE_CURL_ALIASES); do \
                $(RM) "$$execdir/$$p" && \
                ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \
                ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \
                cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \
 -        done; } && \
 +        done; } ; } && \
        ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
  
  install-gitweb:
diff --combined gitweb/static/gitweb.css
index 0000000000000000000000000000000000000000,50067f2e0dea2c1e17a41e9a5e8b2a8f6240c13d..4132aabcdb4ef402ceb1a890b61778b3254fdf18
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,574 +1,592 @@@
+ body {
+       font-family: sans-serif;
+       font-size: small;
+       border: solid #d9d8d1;
+       border-width: 1px;
+       margin: 10px;
+       background-color: #ffffff;
+       color: #000000;
+ }
+ a {
+       color: #0000cc;
+ }
+ a:hover, a:visited, a:active {
+       color: #880000;
+ }
+ span.cntrl {
+       border: dashed #aaaaaa;
+       border-width: 1px;
+       padding: 0px 2px 0px 2px;
+       margin:  0px 2px 0px 2px;
+ }
+ img.logo {
+       float: right;
+       border-width: 0px;
+ }
+ img.avatar {
+       vertical-align: middle;
+ }
+ a.list img.avatar {
+       border-style: none;
+ }
+ div.page_header {
+       height: 25px;
+       padding: 8px;
+       font-size: 150%;
+       font-weight: bold;
+       background-color: #d9d8d1;
+ }
+ div.page_header a:visited, a.header {
+       color: #0000cc;
+ }
+ div.page_header a:hover {
+       color: #880000;
+ }
+ div.page_nav {
+       padding: 8px;
+ }
+ div.page_nav a:visited {
+       color: #0000cc;
+ }
+ div.page_path {
+       padding: 8px;
+       font-weight: bold;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+ }
+ div.page_footer {
+       height: 17px;
+       padding: 4px 8px;
+       background-color: #d9d8d1;
+ }
+ div.page_footer_text {
+       float: left;
+       color: #555555;
+       font-style: italic;
+ }
+ div#generating_info {
+       margin: 4px;
+       font-size: smaller;
+       text-align: center;
+       color: #505050;
+ }
+ div.page_body {
+       padding: 8px;
+       font-family: monospace;
+ }
+ div.title, a.title {
+       display: block;
+       padding: 6px 8px;
+       font-weight: bold;
+       background-color: #edece6;
+       text-decoration: none;
+       color: #000000;
+ }
+ div.readme {
+       padding: 8px;
+ }
+ a.title:hover {
+       background-color: #d9d8d1;
+ }
+ div.title_text {
+       padding: 6px 0px;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+       font-family: monospace;
+ }
+ div.log_body {
+       padding: 8px 8px 8px 150px;
+ }
+ span.age {
+       position: relative;
+       float: left;
+       width: 142px;
+       font-style: italic;
+ }
+ span.signoff {
+       color: #888888;
+ }
+ div.log_link {
+       padding: 0px 8px;
+       font-size: 70%;
+       font-family: sans-serif;
+       font-style: normal;
+       position: relative;
+       float: left;
+       width: 136px;
+ }
+ div.list_head {
+       padding: 6px 8px 4px;
+       border: solid #d9d8d1;
+       border-width: 1px 0px 0px;
+       font-style: italic;
+ }
+ .author_date, .author {
+       font-style: italic;
+ }
+ div.author_date {
+       padding: 8px;
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px 0px;
+ }
+ a.list {
+       text-decoration: none;
+       color: #000000;
+ }
+ a.subject, a.name {
+       font-weight: bold;
+ }
+ table.tags a.subject {
+       font-weight: normal;
+ }
+ a.list:hover {
+       text-decoration: underline;
+       color: #880000;
+ }
+ a.text {
+       text-decoration: none;
+       color: #0000cc;
+ }
+ a.text:visited {
+       text-decoration: none;
+       color: #880000;
+ }
+ a.text:hover {
+       text-decoration: underline;
+       color: #880000;
+ }
+ table {
+       padding: 8px 4px;
+       border-spacing: 0;
+ }
+ table.diff_tree {
+       font-family: monospace;
+ }
+ table.combined.diff_tree th {
+       text-align: center;
+ }
+ table.combined.diff_tree td {
+       padding-right: 24px;
+ }
+ table.combined.diff_tree th.link,
+ table.combined.diff_tree td.link {
+       padding: 0px 2px;
+ }
+ table.combined.diff_tree td.nochange a {
+       color: #6666ff;
+ }
+ table.combined.diff_tree td.nochange a:hover,
+ table.combined.diff_tree td.nochange a:visited {
+       color: #d06666;
+ }
+ table.blame {
+       border-collapse: collapse;
+ }
+ table.blame td {
+       padding: 0px 5px;
+       font-size: 100%;
+       vertical-align: top;
+ }
+ th {
+       padding: 2px 5px;
+       font-size: 100%;
+       text-align: left;
+ }
+ /* do not change row style on hover for 'blame' view */
+ tr.light,
+ table.blame .light:hover {
+       background-color: #ffffff;
+ }
+ tr.dark,
+ table.blame .dark:hover {
+       background-color: #f6f6f0;
+ }
+ /* currently both use the same, but it can change */
+ tr.light:hover,
+ tr.dark:hover {
+       background-color: #edece6;
+ }
+ /* boundary commits in 'blame' view */
+ /* and commits without "previous" */
+ tr.boundary td.sha1,
+ tr.no-previous td.linenr {
+       font-weight: bold;
+ }
+ /* for 'blame_incremental', during processing */
+ tr.color1 { background-color: #f6fff6; }
+ tr.color2 { background-color: #f6f6ff; }
+ tr.color3 { background-color: #fff6f6; }
+ td {
+       padding: 2px 5px;
+       font-size: 100%;
+       vertical-align: top;
+ }
+ td.link, td.selflink {
+       padding: 2px 5px;
+       font-family: sans-serif;
+       font-size: 70%;
+ }
+ td.selflink {
+       padding-right: 0px;
+ }
+ td.sha1 {
+       font-family: monospace;
+ }
+ .error {
+       color: red;
+       background-color: yellow;
+ }
+ td.current_head {
+       text-decoration: underline;
+ }
+ table.diff_tree span.file_status.new {
+       color: #008000;
+ }
+ table.diff_tree span.file_status.deleted {
+       color: #c00000;
+ }
+ table.diff_tree span.file_status.moved,
+ table.diff_tree span.file_status.mode_chnge {
+       color: #777777;
+ }
+ table.diff_tree span.file_status.copied {
+   color: #70a070;
+ }
+ /* noage: "No commits" */
+ table.project_list td.noage {
+       color: #808080;
+       font-style: italic;
+ }
+ /* age2: 60*60*24*2 <= age */
+ table.project_list td.age2, table.blame td.age2 {
+       font-style: italic;
+ }
+ /* age1: 60*60*2 <= age < 60*60*24*2 */
+ table.project_list td.age1 {
+       color: #009900;
+       font-style: italic;
+ }
+ table.blame td.age1 {
+       color: #009900;
+       background: transparent;
+ }
+ /* age0: age < 60*60*2 */
+ table.project_list td.age0 {
+       color: #009900;
+       font-style: italic;
+       font-weight: bold;
+ }
+ table.blame td.age0 {
+       color: #009900;
+       background: transparent;
+       font-weight: bold;
+ }
+ td.pre, div.pre, div.diff {
+       font-family: monospace;
+       font-size: 12px;
+       white-space: pre;
+ }
+ td.mode {
+       font-family: monospace;
+ }
+ /* progress of blame_interactive */
+ div#progress_bar {
+       height: 2px;
+       margin-bottom: -2px;
+       background-color: #d8d9d0;
+ }
+ div#progress_info {
+       float: right;
+       text-align: right;
+ }
+ /* format of (optional) objects size in 'tree' view */
+ td.size {
+       font-family: monospace;
+       text-align: right;
+ }
+ /* styling of diffs (patchsets): commitdiff and blobdiff views */
+ div.diff.header,
+ div.diff.extended_header {
+       white-space: normal;
+ }
+ div.diff.header {
+       font-weight: bold;
+       background-color: #edece6;
+       margin-top: 4px;
+       padding: 4px 0px 2px 0px;
+       border: solid #d9d8d1;
+       border-width: 1px 0px 1px 0px;
+ }
+ div.diff.header a.path {
+       text-decoration: underline;
+ }
+ div.diff.extended_header,
+ div.diff.extended_header a.path,
+ div.diff.extended_header a.hash {
+       color: #777777;
+ }
+ div.diff.extended_header .info {
+       color: #b0b0b0;
+ }
+ div.diff.extended_header {
+       background-color: #f6f5ee;
+       padding: 2px 0px 2px 0px;
+ }
+ div.diff a.list,
+ div.diff a.path,
+ div.diff a.hash {
+       text-decoration: none;
+ }
+ div.diff a.list:hover,
+ div.diff a.path:hover,
+ div.diff a.hash:hover {
+       text-decoration: underline;
+ }
+ div.diff.to_file a.path,
+ div.diff.to_file {
+       color: #007000;
+ }
+ div.diff.add {
+       color: #008800;
+ }
+ div.diff.from_file a.path,
+ div.diff.from_file {
+       color: #aa0000;
+ }
+ div.diff.rem {
+       color: #cc0000;
+ }
+ div.diff.chunk_header a,
+ div.diff.chunk_header {
+       color: #990099;
+ }
+ div.diff.chunk_header {
+       border: dotted #ffe0ff;
+       border-width: 1px 0px 0px 0px;
+       margin-top: 2px;
+ }
+ div.diff.chunk_header span.chunk_info {
+       background-color: #ffeeff;
+ }
+ div.diff.chunk_header span.section {
+       color: #aa22aa;
+ }
+ div.diff.incomplete {
+       color: #cccccc;
+ }
+ div.diff.nodifferences {
+       font-weight: bold;
+       color: #600000;
+ }
+ div.index_include {
+       border: solid #d9d8d1;
+       border-width: 0px 0px 1px;
+       padding: 12px 8px;
+ }
+ div.search {
+       font-size: 100%;
+       font-weight: normal;
+       margin: 4px 8px;
+       float: right;
+       top: 56px;
+       right: 12px
+ }
+ p.projsearch {
+       text-align: center;
+ }
+ td.linenr {
+       text-align: right;
+ }
+ a.linenr {
+       color: #999999;
+       text-decoration: none
+ }
+ a.rss_logo {
+       float: right;
+       padding: 3px 0px;
+       width: 35px;
+       line-height: 10px;
+       border: 1px solid;
+       border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+       color: #ffffff;
+       background-color: #ff6600;
+       font-weight: bold;
+       font-family: sans-serif;
+       font-size: 70%;
+       text-align: center;
+       text-decoration: none;
+ }
+ a.rss_logo:hover {
+       background-color: #ee5500;
+ }
+ a.rss_logo.generic {
+       background-color: #ff8800;
+ }
+ a.rss_logo.generic:hover {
+       background-color: #ee7700;
+ }
+ span.refs span {
+       padding: 0px 4px;
+       font-size: 70%;
+       font-weight: normal;
+       border: 1px solid;
+       background-color: #ffaaff;
+       border-color: #ffccff #ff00ee #ff00ee #ffccff;
+ }
+ span.refs span a {
+       text-decoration: none;
+       color: inherit;
+ }
+ span.refs span a:hover {
+       text-decoration: underline;
+ }
+ span.refs span.indirect {
+       font-style: italic;
+ }
+ span.refs span.ref {
+       background-color: #aaaaff;
+       border-color: #ccccff #0033cc #0033cc #ccccff;
+ }
+ span.refs span.tag {
+       background-color: #ffffaa;
+       border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+ }
+ span.refs span.head {
+       background-color: #aaffaa;
+       border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+ }
+ span.atnight {
+       color: #cc0000;
+ }
+ span.match {
+       color: #e00000;
+ }
+ div.binary {
+       font-style: italic;
+ }
++
++/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
++
++/* Highlighting theme definition: */
++
++.num    { color:#2928ff; }
++.esc    { color:#ff00ff; }
++.str    { color:#ff0000; }
++.dstr   { color:#818100; }
++.slc    { color:#838183; font-style:italic; }
++.com    { color:#838183; font-style:italic; }
++.dir    { color:#008200; }
++.sym    { color:#000000; }
++.line   { color:#555555; }
++.kwa    { color:#000000; font-weight:bold; }
++.kwb    { color:#830000; }
++.kwc    { color:#000000; font-weight:bold; }
++.kwd    { color:#010181; }