From: Junio C Hamano Date: Fri, 18 Jun 2010 18:16:55 +0000 (-0700) Subject: Merge branch 'jn/gitweb-plackup' X-Git-Tag: v1.7.2-rc0~55 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/7c1b228d26107d2cac9fd9549a6a1cff41c24b51?ds=inline;hp=-c Merge branch 'jn/gitweb-plackup' * 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 --- 7c1b228d26107d2cac9fd9549a6a1cff41c24b51 diff --combined Makefile index a07333b7c9,cc2b3b147d..0a8dff3a1a --- a/Makefile +++ 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 0000000000,50067f2e0d..4132aabcdb mode 000000,100644..100644 --- a/gitweb/static/gitweb.css +++ b/gitweb/static/gitweb.css @@@ -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; }