- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
调用 URL http://<gitweburl>/gitweb.cgi?p=<repo>;a=tree;f=<subdir>;hb=HEAD
将显示 <repo>
的树从 <subdir>
开始.
调用 URL http://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;f=<subdir>;hb=HEAD
将产生 404。
调用 URL http://<gitweburl>/gitweb.cgi?p=<repo>.git;a=snapshot;h=HEAD
将提供 <repo>
的快照在 HEAD 修订时。
我找不到使 Gitweb 提供从子目录开始的快照的正确语法。我的意思是导致:$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> HEAD:<subdir>
我天真地尝试调用 URL http://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;h=HEAD;f=<subdir>
但是这会导致包含整个存储库的快照存档。
在 Gitweb 网络界面中点击后我发现,更改为“树” View 并移动到 <subdir>
然后单击“快照”使用与此类似的 URL:
http://<gitweburl>?p=<repo>;a=snapshot;h=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9;sf=tgz
它提供的正是我想要的,但我不知道这个哈希参数 h=...
是什么是。这不是提交 ID - 我已经检查过了。它必须以某种方式识别 <subdir>
.但即使它确实如此 - 这仍然对我没有帮助,因为有人只是想要一个开始于/仅包含 <subdir>
的快照。通常不知道这个散列。
知道如何通过 Gitweb 获取子目录快照吗?提前致谢!
添加:
刚刚发现:h=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
是与 <subdir>
关联的哈希值通过例如可见$ git ls-tree -r -t HEAD
所以这两个命令:
$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> HEAD:<subdir>
$ git archive --format=tar --remote=<gituser>@<gitserver>:<repo> 42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
做同样的事情让我认为 HEAD:<subdir>
和 42a6503da6aaedc92bb3543e0b0de9b2de0aaae9
是等价的。我仍然不能只替换 http://<gitweburl>?p=<repo>;a=snapshot;h=42a6503da6aaedc92bb3543e0b0de9b2de0aaae9;sf=tgz
中的哈希值与 HEAD:<subdir>
.调用此 URL 会导致“400 - 无效的哈希参数”...所以这里没有真正的进展。
正如 poke 所建议的,一个快速又肮脏的 hack 可以使用 URL http://<gitweburl>/gitweb.cgi?p=<repo>;a=snapshot;h=HEAD;f=<subdir>
$ diff -Naur gitweb.cgi.original gitweb.cgi.new
--- gitweb.cgi.original 2012-09-28 00:50:47.000000000 +0200
+++ gitweb.cgi.new 2013-01-22 11:04:29.870532502 +0100
@@ -7029,6 +7029,9 @@
my ($name, $prefix) = snapshot_name($project, $hash);
my $filename = "$name$known_snapshot_formats{$format}{'suffix'}";
+ if ($file_name) {
+ $hash="$hash:$file_name"
+ }
my $cmd = quote_command(
git_cmd(), 'archive',
"--format=$known_snapshot_formats{$format}{'format'}",
最佳答案
有问题的 h
值是您当前正在查看的树对象的 ID。一个提交有一个根树对象,你可以在 Gitweb 的提交页面上看到。每棵树都是指向 blob(如果是文件)或其他树对象的目录条目列表。
因此,当您导航到树的更深处时,h
始终表示树 ID。另一方面,hb
值是提交 ID。
不幸的是,Gitweb 没有更好的方法来获取子目录的快照,即不知道树哈希而只知道路径。但可能会向它添加一些功能,将 f
参数考虑在内,并自动为您获取树哈希。
我刚刚查看了源码,你可能会在修改this part时碰上运气。 .我不太了解 perl,无法告诉您具体要做什么,但您基本上可以检查是否设置了 $file_name
变量,如果是这样,只需获取 $ 的哈希值散列:$file_name
。然后你将它设置为新的散列,一切都可以工作。
关于子目录的 gitweb 快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14444593/
我正在通过 OpenSUSE(非虚拟主机)中的 Apache 在我的系统中配置 gitweb。但是,我收到以下错误:404 - No projects found . /etc/gitweb.conf
刚刚开始使用git。构建和安装它很容易。然后我进入我的一个 Web 项目的目录并向其中添加一个 git 存储库。 $ cd ~/Sites/webapp $ git init (and so on)
目标:在 gitweb 网页上看到我的项目。 我安装了 git+gitolite+gitweb。我的 gitolite.conf 文件是: repo gitolite-admin
我已将 $projectroot 指向一个 400GB 的目录,其中包含 n 个 git 项目。早些时候我们只有几个项目,而 gitweb 启动非常快,一旦项目数量开始增长,加载就需要时间。有什么办法
Markdown 对文档很重要,很高兴看到 README.md可以在github中自动以html格式显示,如https://github.com/twitter/bootstrap/blob/mast
我尝试设置 gitweb,但是当我加载页面时,结果很奇怪... 编辑:为了防止人们误解,它应该是这样的: 这是我的 lighttpd 配置文件的样子: server.port = 80 server.
我刚刚在 centos 7 机器上设置了一个 gitweb 服务器,但是当我尝试克隆时,他问我密码?我怎么能更改服务器上的密码,因为我从来没有设置过... $ git clone git@xxx.xx
我最近在我的共享主机上安装了我的 git 现在我想安装 gitweb 但我不知道如何安装和配置它。 有没有安装gitweb的过程可以分享一下? 最佳答案 gitweb section of the g
调用 URL http:///gitweb.cgi?p=;a=tree;f=;hb=HEAD将显示 的树从 开始. 调用 URL http:///gitweb.cgi?p=;a=snapshot;
我刚刚在我的生产服务器上安装了 Git,我希望 GitWeb 可以使用它。当我偶然发现一个显示如何使用 git web 工作的教程时,我对让它工作非常感兴趣...... git instaweb -d
我试图在一开始只有一个开发人员来实现一个 git 服务器,所以只有一个拥有完全访问权限。我已经没有问题了。该用户正在使用 ssh 访问权限进行工作。 我想与在 apache 上运行的某种 GUI(gi
我的 CentOs 5.5 服务器上有一个正常运行的 git 存储库。我想要一个使用 gitweb 的存储库的 Web 用户界面。 我按照 http://git-scm.com/book/ch4-6.
有没有我可以传递给 gitweb 的 url 参数(或者我可以做的任何其他事情)告诉它不要显示空白更改? 背景故事:我有一个文件生成过程,它创建了数百个文件,然后以编程方式将其 checkin git
我已经在所有经过身份验证的用户都可以访问的 apache vHost 上成功设置了 gitweb。 服务器本身通过 https 提供了几个 git 存储库,并且每个用户/组都可以访问这些项目。例如,t
我想克隆一个 git:// 服务器已关闭的 git 存储库。 幸运的是,它的 gitweb 界面仍在工作,重建 git 存储库所需的所有数据都可以从那里获得。 那么,是否有任何 git 命令或其他工具
我使用 gitweb。 在 TreeView 中,我看到了我的源代码。但是这段代码都是黑色的,我喜欢配置为添加高亮 最佳答案 要在现代 gitweb 的“blob” View 中启用语法高亮,您需要
我先安装了 gitolite,然后添加了一些用户和一些 repos,一切都很好。然后我添加了 gitweb,并且可以通过 apache 实例查看 repos(只有 gitweb,没有 gitdaemo
我经常为我的远程存储库使用 gitweb RSS 提要,但它只显示我的提交。 有没有办法将标签对象的创建也添加到提要中? (我目前为远程存储库使用 1.6.3.3。) 干杯。 最佳答案 不像现在这样。
我正在尝试使用 GitWeb 来探索我的存储库,我对它完全陌生,所以我遇到了一些小问题,我知道 GitWeb 是 Git 附带的,我从这里下载了它 http://code.google.com/p/m
我想在不克隆任何东西的情况下确定子模块的关联 SHA-1 - 即远程。 git-ls-remote 不显示此信息,所以我最初的方法是从 gitweb 中抓取 XHTML 并从那里提取 SHA-1。 不
我是一名优秀的程序员,十分优秀!