Articles of svn

在OS X客户端上写Linux Samba共享的问题

我们的网站开发公司有一个Linux服务器和一个Samba共享,员工用来开发网站。 在Samba共享上有许多目录作为web服务器的文档根(共享文件夹client / website.domain匹配http://some.website.local/ )。 每个项目都有Git或Subversionpipe理的存储库。 Windows和Mac客户端连接到Samba共享。 Windows机器在共享上没有问题。 Mac客户端,但是,有。 自从我们最近切换到Git,我开始注意到错误的模式。 有时,在Subversion中进行提交或更新时,SVN客户端会窒息并呈现相当模糊的错误。 工作副本将被locking,再次使用该工作副本的唯一方法是卸载并重新安装它。 只有这样我们才能运行svn清理工作,并使工作副本可以再次运行。 Git现在也发生同样的事情。 有时候,当有人拉动时,所有的文件都会被更新,但索引文件不能被写入。 因此,Git客户端认为从远程仓库中取得的更改实际上是由用户进行的未更改的更改,因为索引文件没有更新,所以认为它仍然反映了旧版本的仓库。 所以,SVN和Git都使用元数据(存储在.svn和.git中的文件)。 这些文件通常以某种方式被locking。 它从来没有发生与正常的文件。 我们已经在Linux机器上的smb.conf文件中尝试了许多关于oplocks和其他相关设置的设置,但仍然无济于事。 这是开始在这里开了我们一个小黑客。 有没有人有类似的经历? 到目前为止,我疯狂search,但没有发现任何东西。

GIT与subgit和Apache的SVN

我已经开始评估一个名为subgit的软件,它可以无缝地与SVN或GIT进行回购。 在我们的整个组织中,我们使用apache来接口我们的回购,并试图将其与GIT结合起来变得有些麻烦。 总体而言,我们希望允许读取访问而不进行身份validation,并且写入应该通过身份validation,这与SVN正常工作,但似乎不像GIT那样简单。 除此之外,使用apache来识别是否是GIT / SVN请求,并找出客户端的位置,这样就可以使用相同的URL,而不pipe您使用的是什么回购系统。 下面是configuration,现在我们已经有适当的读访问没有身份validation的SVN和写访问与身份validation,但对于GIT它是R / W没有身份validation。 <VirtualHost *:80> DocumentRoot /home/subgit/public_html CustomLog /home/subgit/logs/access_log combined SetEnv GIT_PROJECT_ROOT /home/subgit/repos/repo/ SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER $REDIRECT_REMOTE_USER ScriptAlias /git/ /usr/lib/git-core/git-http-backend/ <LocationMatch "^/git/.*/git-receive-pack$"> Options +ExecCGI AuthType Basic AuthName "subgit" AuthBasicProvider file AuthUserFile /home/subgit/etc/subgit Require valid-user Allow From All </LocationMatch> <LocationMatch "/svn"> DAV svn SvnPath /home/subgit/repos/repo AuthType Basic AuthName "subgit" […]

通过SSH SVN不工作在Windows与乌龟SVN

我可以通过SSH访问安装了svnadmin (以及其他必要工具)的FreeBSD机器。 svn是版本1.7.9(r1462340)。 我在Windows 7 x64上,使用Tortoise SVN 1.7.7。 我遵循这个官方指南来帮助我build立我的服务器和龟SVN,但我有麻烦设置它。 我已经生成了一对私钥/公钥,并将它们分别添加到我的服务器的~/.ssh/authorized_keys文件和我的Puttyconfiguration中。 我可以使用腻子和我的私钥连接到远程机器。 我也尝试configuration龟SVN做同样的事情,我连接到: svn+ssh://myBSDusername@it2svn/somerepo 其中it2svn是正在运行的 Putty连接configuration文件的名称, somerepo是我的存储库根目录( ~/svnroot/somerepo )中的存储库。 发生的问题是,龟SVN请求我的密钥的密码短语,无论我正确地input了多less次,密码对话框closures了1-2秒,之后它再次提示我的密码短语。 它甚至不说这是错误的 ,它只是不停地问我一遍又一遍的密码。 如果我故意input了错误的密码,我会立即再次提示input密码,而input正确密码时不会出现1-2秒的延迟。 即使我input了乱码,对话仍然没有说错。 这可能是一个错误,但它仍然不能解释为什么我的正确密码不被接受。 组态 下面是authorized_keys文件的内容(删除了键的实际内容): ssh-dss AAA….FuA== myBSDusername@ems command="svnserve -t -r ~/svnroot –tunnel-user=svnAuthorDude",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-dss AAAA….IFuA== myBSDusername@ems 重要说明:指南说我的“命令”行应该是这样的: command="svnserve -t -r <ReposRootPath> –tunnel-user=<author>", no-port-forwarding,no-agent-forwarding,no-X11-forwarding, no-pty ssh-rsa <PublicKey> <Comment> 但是我使用ssh-keygen和指南中使用的相同参数生成的密钥是以ssh-dss而不是ssh-rsa开头的,这就是为什么ssh-rsa在我自己的文件中被dss代替(显然是因为密钥是DSA而不是RSA密钥)。

Nginx的颠覆提交失败

您好,我犯了php脚本subverison麻烦。 我正在使用Nginx的Web服务器发送请求到Apache服务器使用mod_proxy设置nginx的提交文件,svn结帐和更新工作正常。 服务器{ 听80; server_name svn.server; 位置 / { access_logclosures; proxy_pass http:// localhost:8081; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header主机$主机; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; } 位置〜^ / repos /.*。php $ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; 包括fastcgi_params; } }

为什么Subversion在一台机器上更新需要更长的时间?

在我们的一台服务器(2008 R2)上,任何SVN操作至less需要30秒。 存储库使用HTTPS协议和FSFStypes。 如果我更新我的工作站上的特定文件,操作不到两秒钟。 如果我在服务器上尝试它,它似乎连接,等待30秒,然后执行更新。 这个问题发生在我所观察到的所有我尝试过的所有内部知识库中的100%。 由于服务器无法访问Internet,因此无法使用外部存储库testing此问题。 这似乎与networking问题没有关系,因为我可以通过networking浏览器从服务器浏览存储库,不会有任何延迟。 这个问题也在SlikSVN和TortoiseSVN中体现出来。 我启用详细日志logging(使用 – configuration选项服务器:全球:霓虹灯 – debugging掩码),并在30秒延迟之前发生的最后一件事是SSL身份证实。 我使用Wireshark来检查数据包,并且在30秒的延迟期间服务器和SVN服务器之间没有stream量传输。 在30秒延迟之后,服务器发送Wireshark标识为应用数据的两个数据包,服务器立即响应。 我检查了我的%appdata%中的Subversionconfiguration,没有任何设置。 在CLI上明确指定凭证没有任何区别。 我也尝试禁用系统的“自动检测networking设置”,因为有些用户报告说这会影响SVN性能,但是没有影响。 其他用户报告说,在networking适配器中启用IPv6可能会导致延迟,但IPv6被禁用。 我不确定在哪里继续我的调查。 有没有人有任何见解? 我可以提供任何所需的信息。

实现和testing一个Subversion钩子

背景 我试图为Subversion实现一些提交钩子。 我做了大量的研究尝试,并得到一个简单的testing钩工作,但我没有运气。 作为参考,我已经通过了,遵循,然后试图结合以下链接的方法: 1. 目录configuration的Subversion手册 2. 服务器端钩子脚本的Tortoisevn手册 3. 服务器端钩子的解释,包含Subversion手册的链接 4. pre-commit钩子的wordaligned教程 5.服务器故障回答提交钩子的问题 还有一些其他的网站,我已经引用和使用,但我仍然不能得到提交钩子的工作。 我的环境 我的机器正在运行RHEL6(Cent OS)。 Subversion位于远程机器上,我不能直接访问我的主pipe的权限。 远程机器正在运行Subversion 1.6。 这是我的存储库的当前结构: test-for-svn-hooks |-branches |-hooks | +-pre-commit |-tags +-trunk 预先提交的文件临时将其权限设置为777 。 所有目录都将其权限设置为775 。 这是我为了testing提交钩子而创build的示例脚本: #!/usr/bin/env bash echo "THOU SHALL NOT PASS" 1>&2 exit 1 我已经检查和testing了一切,以确保我的pre-commit钩子正常工作。 我不知道还有什么我需要检查,以确保它的工作。 我可以提交任何我喜欢的内容,而且不会将消息输出到我的屏幕上。 问题 1.在执行钩子时有什么漏掉或忽略的东西? 2.如果我以这种方式实现一个钩子,我是否必须担心在Tortoisesvn中再次实现相同的钩子? 任何反馈和/或build议,非常感谢。

Apache 500内部服务器使用空的用户名字段进行authz_svn_module身份validation时出错

我的环境 Apache 2.2 Windows Server 2008 R2(我也有与Windows 7相同的问题) 乌龟SVN 1.8.7 Subversion 1.8.9 我有这个SVN服务器使用Apache使用authz_svn_module及其依赖项(mod_dav_svn.so等)与Active Directory进行身份validation。 身份validation部分正常工作正常,但如果我将字段用户名留空,则会生成500内部服务器错误。 如果我尝试从Web浏览器login或者尝试执行svn结帐 ,问题就会发生。 它不会在Apache logs / error.log文件中生成条目,但会在logs / access.log文件中留下条目: xxxx – “”[12 / Aug / 2014:11:00:10 -0300]“GET / svn / HTTP / 1.1”500 550 而不是当我input无效的用户名/密码时: xxxx – invalidu1 [12 / Aug / 2014:10:11:03 -0300]“GET / svn / HTTP / 1.1”401 401 […]

Git / svn – 保持同步两个不同的访问权限的存储库

我已经被@PatrickQuirkbuild议在这里发布这个问题… 网上有太多的资料让我了解,并能够得到我自己的图片,所以我轻轻地要求社区为我的旅程提供灯光。 我的情况: 我们公司的防火墙后面有一个SVN服务器。 不可能移动到DMZ。 我们需要一些第三方(我们的客户)从远程位置访问部分源代码,因为他们正在为开发作出贡献。 但是他们不是来自我们公司的,所以我不能提供他们的VPN访问。 我需要他们不仅能够读取源代码,还可以提交更改。 我们的SVN回购包含我们所有的产品。 我只想给我的客户端提供一些文件夹。 我的公司非常不愿意让我们购买一个私人的GitHub帐户…出于安全原因,而不是成本…我们正在尝试几个月以下,但它不工作,因为它需要手动同步: 在线租用虚拟机。 安装一个Git服务器。 提供对我们的开发者和我们的客户的访问。 做一个初步的结帐svn文件夹我想分享的数量减less。 我们都在努力:改进这些文件夹中的代码或创build新的源代码和文件夹。 我们的开发人员应该手动更新/提交这两个回购…这只是发生… 所以我正在寻找自动同步的解决scheme,但要记住访问权限… 另一个担心是,我们公司将在明年将我们所有的SVN迁移到Git …我没有期待这个问题,运行我们自己的git服务器,而不是SVN,但它将不得不被保留在防火墙之后。 然后,我迷失在“克隆”,“镜像”方面,并保持正确的访问权限… … – 你可以就这个分布式体系结构提供什么解决scheme/build议?

Visual Svn服务器:如何限制按指定的IP地址编辑

我想只启用特定的IPAddess来编辑(添加,删除,更新…)我的视觉svn服务器,但所有其他IPAddess必须能够读取… 我相信在文件%VISUALSVN_SERVER%conf\httpd-custom.conf需要这样的改变 <VirtualHost *:80> <Location /svn> # write access <LimitExcept GET PROPFIND OPTIONS REPORT> Order deny,allow deny from all Allow from XXX.XXX.XXX.XXX </LimitExcept> </Location> </VirtualHost> 但是不太清楚可视化的svn服务器。 什么是正确的方法? Visual SVN Server 3.2 x64安装在Windows 2008 R2 Server x64 从VisualSvn支持更新 这种function在VisualSVN Server 3.2中是不可用的,但是我们考虑在未来版本中实现它的可能性。 一般来说,可以通过修改httpd-custom.conf文件来实现基于IP的限制,但我们强烈build议不要采取这种方法。 VisualSVN服务器启用了“SVNPathAuthz short_circuit”选项,大大提高了授权性能。 但是,该选项有一个限制:服务器configuration不能依赖其他授权模块,如“authz_host_module”(负责基于IP的检查),否则您将遇到意外的授权行为。 另一方面,如果禁用“short_circuit”,那么当运行针对您的存储库的授权密集型操作(例如运行svn log , svn checkout ,svn export等或者运行graphics存储库浏览器一个TortoiseSVN客户端提供)

Trac + SVN提交后挂钩不工作

我有一个与SVN存储库链接的Trac环境。 我想设置SVN后提交挂钩自动更新Trac票和添加引用等 在/ var / lib / svn / repository / hooks / post-commit我有 REPOS =“$ 1”REV =“$ 2” / usr / bin / python /var/lib/trac/custom-trac-post-commit.py -p“/ var / lib / trac / Project”-r“$ REV” 你们可以请协助如何debugging吗? 我没有任何错误或任何东西。 如果我使用: REPOS =“$ 1”REV =“$ 2” / usr / bin / trac-admin / var / lib / trac […]