我疯狂search,试图find一个解决scheme – 但没有太多的运气!
我有我的本地Windows XP机器上运行的TortoiseSVN和Subversion。 我修改我的网站并在本地提交。 然后,我想将这些更改推送到现场网站。 这是在我们的专用服务器(Windows 2008 Server)上托pipe的。
我已经与托pipe公司进行了沟通,确认他们不支持SVN,因为它是一个Windows系统不会有SSH的 – 所以这不是一个选项。
是否有任何软件或方法可以用来将我提交给远程服务器的更改推送出去? 或者我必须手动上传使用FTP(这是一个痛苦的时刻!
感谢您的任何信息!
Windows-box 可以有SSH
如果你想使用Subversion,你必须阅读和饶恕 SVN Book 。 第5.3.2节“实现存储库钩子”告诉我们关于存储库(服务器端)钩子 (你可以在你的 仓库中 使用钩子 )的基本知识,稍后在“仓库钩子”中讨论更深入的内容。 你会看到你的任务后提交钩
因为你使用的是TortoiseSVN,所以你也可以使用TortoiseSVN客户端钩子 (它们处理一小组事件,因为使用工作拷贝,而不是存储库 ),也可以提交后
无论如何,对于部署挂钩,你必须编写非交互式(最好)脚本(普通bat文件,PowerShell,exe文件…),它将/从你的一些文件集/从你转移到最终目的地,并执行一些其他的pipe理活网站。
在规划阶段,您必须定义您想要(并且能够)遵循的部署策略
根据select的策略,准备传输文件集的命令将有所不同,以及网站上的一组操作。
简短的摘要
TSVN钩(易于比服务器做)
svn log -q -v --limit 1 (+获得完整localpathes的一些技巧)或>svn diff --summarize -r PREV:COMMITTED (+从列表中排除D /删除/文件 我还没有准备好使用“在Windows上只上传”的配方(我很懒,上传完全导出的WC,需要的时候),但是有一些想法。
在这些例子中,我使用(部分)我的回购http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk/ ,检查到本地目录z:\Hello\与任务“上传在上次提交文件更改到FTP尽可能使用纯粹的Windows工具“
上次提交的文件
z:\ Hello> svn log -v -q -l 1
r33 | lazybadger | 2012-02-28 16:10:41 +0600(Вт,2012年12月28日)更改path:M /trunk/Hello.en.txt
提取受影响文件的列表 – TBD(grep作为最后的手段)
/trunk/Hello.en.txt
将文件名转换为本地path – 待定
从svn info我们感兴趣的是两个string
URL: http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk Repository Root: http://mayorat.ursinecorner.ru:8088/svn/Hello
URL – Repository Root = / trunk
我们将添加/并从开始文件名/trunk/Hello.en.txt中删除此子string,Hello.en.txt是z:\ Hello
ftp (读取有关ftp -s参数)in ftp -s:uploader -i -n ftp-host ,类似于 user user pass
cd /our/path
mput *.*
bye
用户命令可以更改为使用_netrc技巧 。
input,如果不工作recursion,将replace为put,cd,lcd,mkdir的集合
我不能重新发明轮子!
Perl脚本(对不起,Perl) Svn Ftp Deploy可以为你做部署工作
用最小的修改(为了消除需求的期望) svn2web也可以工作