- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试 Gitblit ,这对于 Git 来说似乎是一个很好的网络用户界面。通过 war 文件安装非常简单,开箱即用。但是,我遇到了一个奇怪的问题。
我正在共享一个具有标准文件夹结构的 Maven 项目
project
pom.xml
src
src/test-file.txt (I added this file to verify the issue)
src/java
src/java/main
src/java/main/package
src/java/main/package/File.java
只要我尝试导航到第一级(因此,pom.xml
和 src
)一切都很好,我就可以正确打开和读取文件。但是,当我尝试打开 src
下的文件夹 java
时,链接呈现为 localhost:8080/gitblit/tree/project/commit-id/src %2Fjava
我看到了一个白页。请求没有转发到服务器(tomcat 7.0.32,如果这有帮助的话),firebug 只是告诉我 错误 400:错误请求
。%2F
看起来很奇怪,所以我手动尝试修复 localhost:8080/gitblit/tree/project/commit-id/src/java
中的链接,但随后生成内部服务器错误。查看日志,我阅读了
INFO Found more URL path parts then expected, these will be ignored. Url: 'http://localhost:8080/gitblit/tree/project/commit-id/src/java', mountpath: 'blob', urlPath: 'project/commit-id/src/java', expected 3 parameters was 4
然后,我添加了 test-file.txt
。如果我导航到 src
并尝试打开 test-file.txt
,首先链接会尝试打开 localhost:8080/gitblit/blob/project/commit- id/src%2Ftest-file.txt
,显示一个 html 页面,指出找不到该文件。如果我尝试与以前相同的技巧(%2F
到 /
),那么我会收到此异常:
INFO Found more URL path parts then expected, these will be ignored. Url: 'http://localhost:8080/gitblit/blob/project/commit-id/src/test-file.txt', mountpath: 'blob', urlPath: 'project/commit-id/src/test-file.txt', expected 3 parameters was 4
ERROR /path/to/project/.git cant find {1} in tree {2}
org.eclipse.jgit.errors.IncorrectObjectTypeException: Object commit-id is not a blob.
at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:130)
at org.eclipse.jgit.lib.ObjectDatabase.open(ObjectDatabase.java:176)
at org.eclipse.jgit.lib.Repository.open(Repository.java:278)
at com.gitblit.utils.JGitUtils.getByteContent(JGitUtils.java:563)
at com.gitblit.utils.JGitUtils.getStringContent(JGitUtils.java:596)
at com.gitblit.wicket.pages.BlobPage.<init>(BlobPage.java:133)
at sun.reflect.GeneratedConstructorAccessor22.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
ERROR Can't instantiate page using constructor public com.gitblit.wicket.pages.BlobPage(org.apache.wicket.PageParameters) and argument r = "project" h = "commit-id" f = "src"
org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor public com.gitblit.wicket.pages.BlobPage(org.apache.wicket.PageParameters) and argument r = "project" h = "commit-id" f = "src"
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212)
at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320)
at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234)
at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92)
at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279)
at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358)
at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465)
at org.apache.wicket.RequestCycle.request(RequestCycle.java:545)
at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486)
at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor22.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188)
... 27 more
Caused by: java.lang.NullPointerException
at com.gitblit.wicket.pages.BlobPage.generateSourceView(BlobPage.java:142)
at com.gitblit.wicket.pages.BlobPage.<init>(BlobPage.java:134)
... 31 more
我基本上没有配置 gitblit 本身(没有更改 gitblit.properties
),所以我的问题可能出在配置遗漏上,但我可以找出位置。有什么提示吗?
最佳答案
no changes to gitblit.properties
这句话引起了麻烦。解决方案在 Gitblit.com FAQ 上有很好的记录。 .
Running Gitblit on Tomcat
Tomcat takes the extra precaution of disallowing embedded slashes by default. This breaks Gitblit urls. You have a few options on how to handle this scenario:
1. Tweak Tomcat Add -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true to CATALINA_OPTS or to your JVM launch parameters
2. Modify gitblit.properties using one of:
- web.mountParameters = false and use non-pretty, parameterized urls
- web.forwardSlashCharacter = ! which tells Gitblit to use ! instead of /
我使用了 web.forwardSlashCharacter = !
,从管理器重新加载 gitblit webapp,现在一切正常。我的错我没有仔细阅读常见问题解答,直到James Morger建议我上课。
关于Gitblit:导航到二级文件夹时的错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761920/
Need a groovy push hook scripts from your Gitblit instance to another Gitblit instance 我有两个私有(privat
我们正在将存储库从 Stash 迁移到 Gitblit。 我看到 Gitblit 应该可以删除 Web 界面中存储库的分支:https://github.com/gitblit/gitblit/iss
我正在尝试 Gitblit ,这对于 Git 来说似乎是一个很好的网络用户界面。通过 war 文件安装非常简单,开箱即用。但是,我遇到了一个奇怪的问题。 我正在共享一个具有标准文件夹结构的 Maven
我目前正尝试在 Groovy 中为 Gitblit 创建一个钩子(Hook),我面临的问题是我不知道如何调试它。我认为它因缺少某些库而失败,但我不知道从哪里可以看出它失败的原因。 有没有什么方法可以为
我们正在尝试在 Gitblit 中创建新组并修复拼写错误,即 Group 3 与 group 3 并且已经尝试编辑 projects.conf 文件没有成功。 Documentation is spa
我在 Jboss V7.1.1.Final 上运行 GitBlit V1.2.1每次我重新启动 Jboss 时,GitBlit(无法读取/丢失)我拥有的存储库。 搜索存储库后,我在以下位置找到了一个:
我希望经过身份验证的用户只能: 查看 克隆 从中获取/pull 出? 基本上我想阻止用户,甚至是经过身份验证的用户推送到这个 git 仓库。但是对于同一个 GitBlit 上的其他 git 存储库,我
我们在 Gitblit 中有一个预接收 Hook ,可以防止将不需要的提交推送到服务器。 Hook 逻辑有时会产生误报。真的很难做到绝对准确。我们希望能够以某种方式执行 push 命令的修改版本,以忽
我们想从 svn 更改为 git。我们在我们的内部网中有一个 svn-server 并且希望有 git 的等价物。 gitblit使用起来似乎很有趣,因为我们的服务器上运行着 tomcat。 那么,从
我尝试使用 SSH 从我的 gitblit 服务器克隆存储库,但它显示“致命:无法从 ssh://server-name:29418/repo-name.git 获取引用” 这是我所做的: 1. 在
我需要在 Gitblit 服务器上设置接收后 Hook 脚本,它将更改 pull 到同一服务器上的网站。在 bash 脚本中,命令看起来像这样: sudo git --work-tree=/var/w
如果我在 Eclipse 或其他 git 客户端上添加拒绝推送的 Hook ,则会显示拒绝消息。 但是,如果我使用的是 intelij-idea,则不会显示拒绝原因。 这可以配置为也显示在 JIdea
正如标题,当我使用来自 gitblit 的 WebUI 工具创建一个新的存储库时,我遇到了这个问题。 我尝试了所有类型的解决方案: 创建一个匿名读/写的存储库。 创建一个带有身份验证读/写的存储库。
我在 RedHat 6 上使用 GitBlit (1.3.2)、Jenkins (1.534) 我在本地 GitBlit 上创建了一个 Git 存储库。访问仅限于经过身份验证的用户。这很好用。 当我尝
我已经建立了一个可以通过远程连接访问的 git 存储库。使用命令行,我可以毫无问题地通过 ssh 克隆存储库、进行推送和 pull 等操作。不过,我想使用 gitblit 通过 https 连接访问存
我是一名优秀的程序员,十分优秀!