在托pipe服务器上设置SVN

我只是想知道是否有人会好心地帮我在一个托pipe(专用)Linuxnetworking服务器上安装颠覆我正在努力。

我有一个专用的Linux服务器,我租了,团队已经安装了颠覆(/ usr /斌),这就是全部。 我被告知可以使用PuTTY连接到我已经能够完成的服务器。

现在,我在服务器上托pipe了15个以上的网站,并且安装了WHM以pipe理这些网站; 因此我想为每个创build一个存储库,并将源代码放入每个存储库。 然后,我将使用TortoiseSVN在本地机器上创build存储库,然后将这些提交应用到活动服务器上将是一件好事。

我已经阅读了SVN书的元素; 然而,我真的很挣扎,并希望得到一些帮助,正确地build立一个存储库,并创build所有必要的权限和安全,然后b)如何从本地机器到现场服务器的变化 – 再次帮助在我所假设的是创build一个钩子脚本将文件传输到实时服务器是非常感激的?

谢谢

PS这真的可以帮助我,如果有人可以提供上述简单的步骤和所需的代码,因为我已经在这个几个星期了,似乎无法得到它正在进行。

在你的服务器上:

1)确保安装颠覆 – yum / apt-get / etc应该很容易。

2)创build一个目录来存放一个版本库: mkdir /some/repository/path

3)使用svnadmin来创build存储库布局: svnadmin create /some/repository/path

4)导入您的资源:

 $ cd /path/to/your/code $ svn import -m "initial import" . file:///some/repository/path/trunk 

注意:这将代码导入回购,但不创build工作副本! 那么下一个:

5)移动你的原始文件,并检查出一个工作副本:

 $ cd .. $ mv /path/to/your/code /path/to/your/code-presvn $ svn co file:///some/repository/path/trunk code 

5.5)您可能希望确保人们不能通过Web服务器浏览您的.svn目录。 对于Apache来说,httpd.conf中的内容应该如下所示:

 <Directory ~ "\.svn"> Order allow,deny Deny from all </Directory> 

6)testing你的网站,确保权限是正确的,等等。检出一个新的副本可能产生了问题。 为了正确configuration新签出的副本,可能需要logging(甚至更好的脚本)任何需要完成的更改。

7)要获得本地副本进行开发,请使用svn+ssh://[email protected]/some/repository/path/trunk的存储库URL svn+ssh://[email protected]/some/repository/path/trunk我不熟悉tortoisesvn,但是如果您使用的是标准命令在线工具,你会看到你的项目,如:

 $ svn co svn+ssh://[email protected]/some/repository/path/trunk 

然后您可以对本地工作副本进行更改,并提交( svn commit -m "description of changes" )。 当你想把这些改变移动到你的生产系统,ssh到盒子里, cd /path/to/your/sitesvn -u status (预览更改), svn update来把所有东西都更新。

希望这是有帮助的。

我也不能build议你读更多的颠覆文档,以了解发生了什么。 另外,确保你知道你在做什么重要的事情之前, 您可以使用虚假数据创buildtesting存储库,并进行一些实验,直到您确信自己知道自己在做什么为止。

是专用服务器还是共享主机? 如果共享主机,那么我认为你运气不好,但如果它是一个专用的服务器,那么你只需login并安装应用程序

我会使用像端口8080的服务来监听,我一定会使用VisualSvnServer标准,因为它是超级简单的安装和configuration。

另外,如果您愿意购买VisualSVNServer,那么您将拥有完全的访问权限来远程配​​置它。

http://www.visualsvn.com/server/licensing/

我个人使用标准版本和RDP到我的服务器,当我需要创build一个新的回购…这种方式我可以使用VisualSVNgraphics用户界面,并知道它会工作,没有麻烦。

这里的一些艺术术语将澄清你面临的问题。 了解SVN的重要之处在于它是一个客户端 – 服务器系统 。 一个posix FS可读的版本库被称为checkout ; 中央服务器不会有这样的事情。 将更改移动到中央存储库的签出称为提交 ; 其他系统所做的检出不受影响; 他们必须更新才能看到你的新提交。 所有更改都必须通过中央SVN服务器,您不能从一个结帐通到另一个结帐。 在特定的SVN事件之后在服务器上运行的脚本被称为钩子 。 例如,在每次提交之后发送电子邮件的脚本称为“postcommit挂钩”。

所以你必须做的是:

  1. 设置一个服务器,在每个网站上托pipe一个SVN仓库,并通过SVN + SSH访问。 这将使用SSH进行身份validation(即“这是比尔”),但保留授权(“比尔可以写这个回购”),由您决定。 通常存储库存储在/var/lib/svn/ ,因此请使用您的svnadmin create pwnguin.net ,如svnadmin create pwnguin.net 。 一个新的空回购是创build。 使用龟检查回到您的桌面和添加文件。 该url将类似svn+ssh://example.com/var/lib/svn/pwnguin.net

  2. 一旦你有结帐和提交工作为您的本地盒子,设置每个网站使用DocRoot结帐。 请确保阻止访问您的服务器configuration中的任何.svn文件,因为离开时可能有点危险。 在您的工作站上进行更改并提交,然后尝试手动更新结帐并validation信息是否以您想要的方式stream动。

  3. 一旦你的SVN部署工作,你可以使用它来自动完成postcommit挂钩。 如果所有的网站和SVN服务器都在同一个Linux服务器上,那么这个脚本很容易编写,如果它们放在不同的盒子上,它还是很容易的,但是你需要知道如何安全地设置SSH。