热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【git】ubuntu12.04美化gitweb

在之前的文章http:blog.csdn.netcommsharearticledetails18368695中,我们安装了一个gitweb,感觉界面很

在之前的文章  http://blog.csdn.net/commshare/article/details/18368695   中,我们安装了一个gitweb,感觉界面很难看啊,firefox比chrome好看一点。

想美化一下:

zhangbin@Ubuntu32:~/alex/gitProject$ pwd
/home/zhangbin/alex/gitProject
zhangbin@Ubuntu32:~/alex/gitProject$ git clone git://github.com/kogakure/gitweb-theme
fatal: could not create work tree dir 'gitweb-theme'.: Permission denied
zhangbin@Ubuntu32:~/alex/gitProject$ sudo git clone git://github.com/kogakure/gitweb-theme
[sudo] password for zhangbin: 
Cloning into 'gitweb-theme'...
remote: Reusing existing pack: 228, done.
Receiving objects: 100% (228/228), 678.89 KiB | 50 KiB/s, done.
Resolving deltas: 100% (69/69), done.
remote: Total 228 (delta 0), reused 0 (delta 0)
zhangbin@Ubuntu32:~/alex/gitProject$ 



看了下 git-theme:http://kogakure.github.io/gitweb-theme/  要求的git版本是1.7.12+的。


Dependencies

git web interface version 1.7.12 (though it may work in older versions, too …)


而我的ubuntu默认是:

root@Ubuntu32:/home/zhangbin/alex/gitProject/gitweb-theme/gitINSTALL/git-1.8.5# git version
git version 1.7.9.5
root@Ubuntu32:/home/zhangbin/alex/gitProject/gitweb-theme/gitINSTALL/git-1.8.5#  

没有css文件。这里我搞错了,其实人家说的是gitweb的版本吧????!!!不是git的!!!!!

后来发现, gitweb是git里头的!!!那就没有错咯!!

=============

git-core当前最新的是1.8.5的git,可以在这里下载https://code.google.com/p/git-core/downloads/detail?name=git-1.8.5.3.tar.gz&can=2&q=


本想参考http://learnhow.no-ip.org/2013/06/12/%E5%9C%A8ubuntu-12-04%E5%AE%89%E8%A3%9D%E6%9C%80%E6%96%B0%E7%89%88%E7%9A%84git/

自己编译一个新版的:

root@Ubuntu32:/home/zhangbin/alex/gitProject/gitweb-theme/gitINSTALL/git-1.8.5# make prefix=/usr all

 make install prefix=/usr all 


也有人说http://stackoverflow.com/questions/14409639/unable-to-update-git-on-ubuntu  要这么装:

wget git-core.googlecode.com/files/git-1.8.1.1.tar.gz
tar -zxf git-1.8.1.1.tar.gz
cd git-1.8.1.1
make prefix=/usr/local all
sudo make prefix=/usr/local install


==============

但是发现更有效的方法是:


root@Ubuntu32:/home/git# whereis git
git: /usr/bin/git /usr/bin/X11/git /usr/share/man/man1/git.1.gz



root@Ubuntu32:/home/git# sudo add-apt-repository ppa:git-core/ppa
You are about to add the following PPA to your system:
 The most current stable version of Git for Ubuntu.


For release candidates, go to https://launchpad.net/~git-core/+archive/candidate .
 More info: https://launchpad.net/~git-core/+archive/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it


gpg: keyring `/tmp/tmpzy9mnU/secring.gpg' created
gpg: keyring `/tmp/tmpzy9mnU/pubring.gpg' created
gpg: requesting key E1DF1F24 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpzy9mnU/trustdb.gpg: trustdb created
gpg: key E1DF1F24: public key "Launchpad PPA for Ubuntu Git Maintainers" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
OK



root@Ubuntu32:/home/git# sudo apt-get update
Hit http://mirrors.sohu.com precise Release.gpg
Get:1 http://mirrors.sohu.com precise-updates Release.gpg [198 B]              
Hit http://mirrors.sohu.com precise-backports Release.gpg                      
Get:2 http://mirrors.sohu.com precise-security Release.gpg [198 B]             
Hit http://mirrors.sohu.com precise Release                      



                               
root@Ubuntu32:/home/git# apt-get install git
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  git-arch git-cvs git-daemon-run git-email git-gui git-man git-svn gitk
  gitweb libyaml-perl
Suggested packages:
  git-bzr git-mediawiki libyaml-shell-perl
Recommended packages:
  libyaml-libyaml-perl libyaml-syck-perl
The following NEW packages will be installed:
  libyaml-perl
The following packages will be upgraded:
  git git-arch git-cvs git-daemon-run git-email git-gui git-man git-svn gitk
  gitweb
10 upgraded, 1 newly installed, 0 to remove and 3 not upgraded.
Need to get 15.7 MB of archives.
After this operation, 6,887 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main libyaml-perl all 0.77-1 [70.4 kB]
Get:2 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git i386 1:1.8.5.2-1~ppa0~precise1 [9,402 kB]
Get:3 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-svn all 1:1.8.5.2-1~ppa0~precise1 [637 kB]
Get:4 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-gui all 1:1.8.5.2-1~ppa0~precise1 [822 kB]
Get:5 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-email all 1:1.8.5.2-1~ppa0~precise1 [562 kB]
Get:6 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-daemon-run all 1:1.8.5.2-1~ppa0~precise1 [543 kB]
Get:7 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-cvs all 1:1.8.5.2-1~ppa0~precise1 [654 kB]
Get:8 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-arch all 1:1.8.5.2-1~ppa0~precise1 [556 kB]
Get:9 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main gitk all 1:1.8.5.2-1~ppa0~precise1 [673 kB]
Get:10 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main git-man all 1:1.8.5.2-1~ppa0~precise1 [1,225 kB]
Get:11 http://ppa.launchpad.net/git-core/ppa/ubuntu/ precise/main gitweb all 1:1.8.5.2-1~ppa0~precise1 [546 kB]
Fetched 15.7 MB in 4min 52s (53.7 kB/s)                                        
(Reading database ... 566732 files and directories currently installed.)
Preparing to replace git 1:1.7.9.5-1 (using .../git_1%3a1.8.5.2-1~ppa0~precise1_i386.deb) ...
Unpacking replacement git ...
Preparing to replace git-svn 1:1.7.9.5-1 (using .../git-svn_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-svn ...
Preparing to replace git-gui 1:1.7.9.5-1 (using .../git-gui_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-gui ...
Preparing to replace git-email 1:1.7.9.5-1 (using .../git-email_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-email ...
Preparing to replace git-daemon-run 1:1.7.9.5-1 (using .../git-daemon-run_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-daemon-run ...
Preparing to replace git-cvs 1:1.7.9.5-1 (using .../git-cvs_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-cvs ...
Preparing to replace git-arch 1:1.7.9.5-1 (using .../git-arch_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-arch ...
Preparing to replace gitk 1:1.7.9.5-1 (using .../gitk_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement gitk ...
Preparing to replace git-man 1:1.7.9.5-1 (using .../git-man_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement git-man ...
Preparing to replace gitweb 1:1.7.9.5-1 (using .../gitweb_1%3a1.8.5.2-1~ppa0~precise1_all.deb) ...
Unpacking replacement gitweb ...
Selecting previously unselected package libyaml-perl.
Unpacking libyaml-perl (from .../libyaml-perl_0.77-1_all.deb) ...
Processing triggers for man-db ...
Setting up git-man (1:1.8.5.2-1~ppa0~precise1) ...
Setting up git (1:1.8.5.2-1~ppa0~precise1) ...
Installing new version of config file /etc/bash_completion.d/git ...
Setting up libyaml-perl (0.77-1) ...
Setting up git-svn (1:1.8.5.2-1~ppa0~precise1) ...
Setting up git-gui (1:1.8.5.2-1~ppa0~precise1) ...
Setting up git-email (1:1.8.5.2-1~ppa0~precise1) ...
Setting up git-daemon-run (1:1.8.5.2-1~ppa0~precise1) ...
Installing new version of config file /etc/sv/git-daemon/run ...
Service git-daemon already added.
ok: run: git-daemon: (pid 14103) 1s
Setting up git-cvs (1:1.8.5.2-1~ppa0~precise1) ...
Setting up git-arch (1:1.8.5.2-1~ppa0~precise1) ...
Setting up gitk (1:1.8.5.2-1~ppa0~precise1) ...
Setting up gitweb (1:1.8.5.2-1~ppa0~precise1) ...


Configuration file `/etc/gitweb.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** gitweb.conf (Y/I/N/O/D/Z) [default=N] ? y
Installing new version of config file /etc/gitweb.conf ...
 * Reloading web server config apache2                                          apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                                         [ OK ]
root@Ubuntu32:/home/git# 


替换为新版的gitweb.conf,然后重启apache2:


root@Ubuntu32:/home/git# sudo /etc/init.d/apache2 restart
 * Restarting web server apache2                                                apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                                         [ OK ]
root@Ubuntu32:/home/git# 



=======================按照github的gitweb主题=============

好像直接copy也行:

zhangbin@Ubuntu32:~/alex/gitProject/gitweb-theme$ cp gitweb.css /usr/share/gitweb/static/
cp: cannot create regular file `/usr/share/gitweb/static/gitweb.css': Permission denied
zhangbin@Ubuntu32:~/alex/gitProject/gitweb-theme$ sudo cp gitweb.css /usr/share/gitweb/static/


或者是用这个命令:
zhangbin@Ubuntu32:~/alex/gitProject/gitweb-theme$ sudo ./setup -vi --install
./setup: [NOTICE] - Target not set, using default path: '/usr/share/gitweb'
./setup: 
./setup: Is this ok? [y] | [n] : y
./setup: 
./setup: Backing up original files, continue? [y] | [n] : y
./setup: 
./setup: Backing up...
./setup: 
`/usr/share/gitweb/static/gitweb.css' -> `/usr/share/gitweb/static/gitweb.css.bak'
`/usr/share/gitweb/static/git-favicon.png' -> `/usr/share/gitweb/static/git-favicon.png.bak'
`/usr/share/gitweb/static/git-logo.png' -> `/usr/share/gitweb/static/git-logo.png.bak'
./setup: 
./setup: ...done
./setup: 
./setup: Linking theme files, continue? [y] | [n] : y
./setup: 
./setup: Linking...
./setup: 
`/usr/share/gitweb/static/gitweb.css' -> `/home/zhangbin/alex/gitProject/gitweb-theme/gitweb.css'
`/usr/share/gitweb/static/git-favicon.png' -> `/home/zhangbin/alex/gitProject/gitweb-theme/git-favicon.png'
`/usr/share/gitweb/static/git-logo.png' -> `/home/zhangbin/alex/gitProject/gitweb-theme/git-logo.png'

./setup: 
./setup: ...done
./setup: 
./setup: [NOTICE] - Installation complete!
zhangbin@Ubuntu32:~/alex/gitProject/gitweb-theme$ 


=================即使这样,我的gitweb也不显示css样式啥的,真是无语了===========

改了好久,终于参看这位大牛的文章:http://blog.chinaunix.net/uid-9672747-id-3486257.html


出现的问题在于,apache的gitweb配置中gitweb文件的路径,写错了,gitweb的别名应该指向gitweb文件存放的路径:


$favicon = "/gitweb/static/git-favicon.png";# git-diff-tree(1) options to use for generated patches
#@diff_opts = ("-M");
@diff_opts = ();
###add by me
$prevent_xss = 1;
$highlight_bin = "/usr/bin/highlight";
$feature{'highlight'}{'default'} = [1];
$feature{'timed'}{'default'} = [1];
#$feature{'highlight'}{'default'} = [1];





=====

apache的gitweb:

sudo gedit  /etc/apache2/conf.d/gitweb


Alias /gitweb /usr/share/gitweb
Options FollowSymLinks +ExecCGIAddHandler cgi-script .cgi





============ 发现source insight写的中文注释在gitweb里头是乱码,而且有很多\r,难道是因为windows的格式的原因???====

参考 http://blog.mylover.cn/2014/01/%E5%85%B3%E4%BA%8Egitweb%E4%B8%AD%E4%B8%AD%E6%96%87%E6%96%87%E4%BB%B6%E5%90%8D%E4%B9%B1%E7%A0%81%E5%8F%8A%E4%BB%A3%E7%A0%81%E9%AB%98%E4%BA%AE%E7%9A%84%E9%97%AE%E9%A2%98/


关于gitweb中中文文件名乱码及代码高亮的问题

  1. 关于在gitweb中中文文件名乱码的问题

今天突然发现,在gitweb中看到(1)log内中文是正常的,(2)中文目录名是正常的,(3)文件只要是utf-8编码的,中文也是正常的,但如果是中文的文件名,则显示的链接名是正常的,但链接编码却不正常,但前面的中文目录编码是正常的,使得所有指向链接都不对了,主要问题是中文文件名没有转为utf-8编码,解决办法:

把gitweb.cgi中所有 file_name=>”$basedir$t->{‘name’}” 替换为 file_name=>”$basedir” . to_utf8($t->{‘name’}) 即可。

  1. gitweb中代码高亮的问题


关于gitweb中代码的高亮,前提是安装好 highlight,一般已经有了,如果没有,使用 apt-get install highlight 安装即可,但在 gitweb 中默认没有打开这个支持,编辑 /etc/gitweb.conf 文件,在最后面加入一行:$feature{‘highlight’}{‘default’} = [1];

但有些代码还是不支持高亮,比如cs文件,这时可以察看 /usr/share/highlight/langDefs目录下的支持类型,在gitweb.conf中定义highlight_ext的地方,自行添加需要的后缀名就可以了。

======================http://blog.163.com/sunshine_linting/blog/static/44893323201339102723893/


(1)source insight 阅读VC++源码,注释为乱码解决方案

1、options->preferences->Syntax Formatting->Styles;
2、在Style Name 选择 Comment,再对其Font Name 选择Pick,然后再选择“新宋体”。

(2)source insight 阅读Linux源码,注释为乱码解决方案

1、用记事本打开源文件,中文可以显示,另存为,在保存选项中,编码一栏发现是:UTF-8。选在ANSI一项,保存。再用Source Insight 打开,终于可以显示了。





推荐阅读
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • MicrosoftDeploymentToolkit2010部署培训实验手册V1.0目录实验环境说明3实验环境虚拟机使用信息3注意:4实验手册正文说 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 基于Web的Kafka管理工具Kafkamanager首次访问Web界面的详细配置指南(附图解)
    首次访问Kafkamanager Web界面时,需要对Kafka集群进行配置。这一过程相对简单,用户只需依次点击【Cluster】>【Add Cluster】,按照提示完成相关设置即可。本文将通过图文并茂的方式,详细介绍每一步的配置步骤,帮助用户快速上手Kafkamanager。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
author-avatar
我心永恒2602922374_902
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有