Articles of svn

从DAV安装的subversion repo中的文件在写入后不久就被清零了

我有一个颠覆回购 "SVNAutoversioning on" 这通常允许webDAV客户端在没有签出 – 编辑 – 提交周期的情况下对文件进行更改,为了方便起见,这对于存储库的一些子集来说工作良好。 在这种情况下,我正在使用颠覆集中版本,而不是源代码pipe理。 服务器间歇性地将文件清零,geany / gedit提供了一个重载(我学到的是一个no-no),重载的文件是空的。 我认为这可能与gtk临时文件有关,但它可以用vi或kate复制。 如果我在vi中编辑一个文件,这里是成功确认的例子。 "mnt/here/bootstrap.d/edited-file" 110L, 4077C written 并上市确认该文件具有非零大小; > ls -la mnt/here/bootstrap.d/edited-file -rw-r–r– 1 me me 4.0K Jan 11 07:42 mnt/here/bootstrap.d/edited-file 然而几秒钟后,列表被改变,显示文件的归零 > ls -la mnt/here/bootstrap.d/edited-file -rw-r–r– 1 me me 0 Jan 11 07:42 mnt/here/bootstrap.d/edited-file/chef-client svn回购日志显示了一些可能是有责任的交易。 ==> svn.limepepper.co.uk-error.log <== [Wed Jan 11 01:47:06 2012] […]

从SVN到GIT:类似于authz的东西?

我们目前有一个SVN存储库的设置,并希望切换到GIT,但我们目前不确定什么确切的GIT设置将为我们工作。 我们目前正在使用SVN(w / Authz)+ Apache(w / WebDAV和LDAP)。 我们使用Authz进行SVN,因为我们需要对存储库中的子目录进行良好的访问控制(不是每个用户都应该读/写所有的目录)。 有没有办法移植这个Authz权限文件,以便GIT存储库使用这个权限控制? 或者有没有其他的方法可以控制GIT单个文件的权限? 请记住,我们已经安装了LDAP,所以权限文件应该简单地将用户名映射到授权目录。

在Subversion中使用MySQL用户表

我现在开始第一次设置一个有mysql和subversion的小型的ubuntu服务器。 我从来没有build立过一台服务器,而我正在为一位教授做这件事。 目前我使用“password-db = passwd”选项通过svn://协议访问版本库,而svnserve会自动在/etc/init.d/rc.local中声明,但是我也运行其他应用程序(PureFTP)已经使用一个MySQL表和MD5密码。 我在网上做了一个研究,检查svn是否可以使用同一张表来节省时间(并且为了避免在passwd文件中使用明确的密码),但是大多数解决scheme都依赖于使用Apache中的WebDAV与svn结合使用。 但是我想使用svnserve提供的svn协议。 这可能吗? 我必须使用WebDAV吗? 有没有一个写得很好的教程,我可以遵循? 提前致谢。

用Plesk设置SVN

我正在使用Plesk 10.4在Cent OS 6上build立一个新的开发Web服务器。 我查了一下,找不到有关Plesk的SVN模块的东西,所以想着安装SVN并手动设置每个站点作为回购站点。 有什么我需要考虑到这样做时,如权限/用户名? 还是可以继续像对待SVN的其他安装一样对待它?

redirectapache svn的子目录(mod_dav_svn)

我有一个mod_dav_svn apache webserver服务svn的一棵大树。 我需要移动一个子树到一个新的服务器(而不是svn)。 有没有办法使用某种重写来redirect所有的子树,以便访问旧URL的用户将被redirect到新的URL? 例如我的树是这样的 folder a file1.html file2.html b file3.html file4.html 我目前可以访问这些,由mod_dav_svn在服务 http://svn.server/svn/folder/a/ http://svn.server/svn/folder/a/file1.html http://svn.server/svn/folder/a/file2.html http://svn.server/svn/folder/b/ http://svn.server/svn/folder/b/file3.html http://svn.server/svn/folder/b/file4.html 我想复制b到其他服务器,以便这些文件可以在新的URL访问。 例如。 http://new.server/someplace/b/ http://new.server/someplace/b/file3.html http://new.server/someplace/b/file4.html 我想从旧地方redirect到新的地方 http://svn.server/svn/folder/b/ -> http://new.server/someplace/b/ http://svn.server/svn/folder/b/file3.html -> http://new.server/someplace/b/file3.html http://svn.server/svn/folder/b/file4.html -> http://new.server/someplace/b/file4.html 问题是,mod_dav_svn控制svn.server所有/svn有没有办法configurationapache或mod_dav_svn来做这个旧的服务器上的子文件夹的redirect?

无法在Subversion存储库中创build名为“mysql”的目录

我有一个特定的问题与颠覆。 环境:subversion(1.6.12dfsg-6),apache2(2.2.16-6 + squeeze7)+ mod dav_svn。 我不能创build一个名为“mysql”或“testmysql”的目录,或者在我的资源库中添加并提交一个名为“mysql.txt”的文件。 谷歌等有很多“颠覆PROPSET 403禁止”的问题。 但是我可以使用颠覆的所有function。 我也可以创build一个名为“hugo”或“test”的目录。 我的存储库正常工作。 只有“mysql”不起作用。 发生以下错误: The server encountered an unexpected return value (403 Forbidden) in response to the request for MKCOL »/svn/repository/!svn/wrk/8123484e-8890-412d-92ed-62ceabcd4189 /etc/mysql" returned /var/log/apache2/access.log 192.168.178.200 – – [time] "OPTIONS /svn/repository/etc HTTP/1.1" 401 6156 "-" "SVN/1.6.12 (r955767) neon/0.29.3" 192.168.178.200 – user1 [time] "OPTIONS /svn/repository/etc HTTP/1.1" 200 […]

在另一台服务器上自动更新SVN信息库

我们有2台Ubuntu Web服务器,其中一台是我们的登台服务器(Staging),另一台是我们的Live服务器(Live)。 Staging有我们的Subversion版本库,以及它的最新版本的网站。 因为SVN服务器在Staging上运行,所以我添加了post-commit钩子脚本,以便登台服务器自动拥有最新的代码。 简单。 但是,我希望Live上的某个存储库也保持更新。 这是一个图像,PDF和类似的存储库。 当一个团队成员对此做出承诺时,我希望它能够在实时服务器上自动更新,以便在邮件,内容pipe理页面等中使用。 我会添加一些东西到SSH后交付和更新,但为了安全,我们只能从一台服务器到另一台用户'commandLine',而'www-data'用户运行后提交。 我宁愿不要在Live上运行cron来每5分钟更新一次,但是我不能在不改变所有用户权限的情况下看到另一种方式。 有任何想法吗?

SVN提交后更新为不正确的版本

SVN和它的post-commit钩子有一个奇怪的问题。 我们有一些网站,这个问题只影响一个(至less我发现)。 这个代码有一个post-commit钩子: #!/bin/sh REPOS="$1" REV="$2" WC=/srv/www/sites/sitename date | tee -a $REPOS/hooks/log.txt cd $WC && svn update 2>&1 >> $REPOS/hooks/log.txt echo | tee -a $REPOS/hooks/log.txt 挂钩运行,当我提交; 该目录存在; 和它运行的用户具有访问该目录的正确权限(我已经调整了钩子的代码以回显两个日志文件来检查。) 当我su到用户,并切换到目录,我可以运行svn update – 它将更新与最新的版本。 当我通过钩子做的时候,它不会。 我做了一些戳,发现钩子运行时,触发svn update ; 但是对刚刚提交的新版本没有做任何事情。 我从目标目录中删除了一个文件,并提交了一个更改 – 文件被恢复了,但是从之前的版本 – 我手动更新的最后一个版本。 显然有一些奇怪的事情,但我不知道是什么。 资源库的configuration看起来不错,但是我对SVN的了解不够深入。 我会很感激任何人可能有什么提示下一步看什么。 编辑 svn info给我: URL: file:///srv/svn/repos/sitename/trunk Repository Root: file:///srv/svn/repos/sitename Repository UUID: […]

SVN访问问题

我跟随了用Apache设置SVN的文档 [第3节,但是现在不使用SSL],当我没有在httpd.conf中启用Require user等安全设置时,我可以访问“test”存储库。 在httpd.conf中添加安全设置后,它会提示input用户凭据,尽pipe我提供了正确的用户名和密码(harry / harryssecret),但它不起作用。 在httpd.conf <Location /svn> Order allow,deny Allow from all DAV svn SVNParentPath /u01/svn/repositories/ # Access control policy AuthzSVNAccessFile /u01/svn/conf/users-access-file Satisfy Any Require valid-user AuthType Basic AuthName "Veera Subversion repository" AuthUserFile /u01/svn/conf/passwd </Location> 文件path [svn@mercury conf]$ pwd /u01/svn/conf [svn@mercury conf]$ ls passwd users-access-file [svn@mercury conf]$ cat passwd veera = test [users] […]

SVN服务器与svn + ssh协议通过自定义端口

我运行Ubuntu 12.04.2 LTS作为虚拟机,并且在前面也有vShield,启用了防火墙和一些NAT修改。 在我的VPSconfiguration中还有其他的机器,但这并不重要。 重要的是,我将Ubuntu上的SSH端口从22更改为765,在vShield上我将端口转换从424更改为765.防火墙具有SSH(和SVN)的所有必要权限。 所以我让SSH连接像这样 kopparberg:Webpage marek$ ssh marko@91.***.***.69 -p 424 它就像一个魅力。 哪里有问题? 我试图在Ubuntu上设置SVN服务器,遵循本指南http://odyniec.net/articles/ubuntu-subversion-server/ 。 如果通过SVN协议检出我的资源库“网页” kopparberg:Webpage marek$ svn checkout svn://91.***.***.69/Webpage –username svnuser 它的工作原理应该如此。 我真正想要做的是结算svn + ssh协议。 我尝试了许多不同的方式,但没有成功 kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69:424/usr/local/svn/repos/Webpage –username svnuser svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your […]