我正在现场部署一些嵌入式 Linux 机器,它们无法通过互联网或 LAN 访问我们的 Subversion 服务器。我能够管理它们的唯一方法是将我的笔记本电脑连接到它们的以太网端口并通过 SSH 登录。
在部署它们之前,我可以确保它们的 SVN 工作副本是最新的,但之后我计划继续开发它们的应用程序。
有没有办法只使用我的笔记本电脑将这些新更新“推送”到已部署的单元,同时保持其签出的完整性(即无需手动复制更新的文件)?
后续问题:如果不可能,是否有办法复制完整的结帐信息,以便部署的单元认为它已被正确更新?
答案1
首先,我想知道您是否真的必须使用 SVN 来部署到嵌入式机器。
我认为将存储库导出到笔记本电脑上的某个临时文件夹,然后使用以下方法推送更改会更干净rsync
svn export <repo>/folder_to_export
rsync -vaz folder_to_export/ user@embedded:target_folder
如果您必须使用 SVN,请将存储库的最新版本本地转储到您的笔记本电脑,然后登录到您的嵌入式设备并第一次执行svn co <repo on laptop>
。然后下次登录嵌入式设备并执行svn up
。当然,确保将最新的 SVN 存储库复制到您的笔记本电脑。
关于迁移 Subversion 存储库的一些信息可以在这里找到:
http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate