Svn 什么';在subversion项目中管理更新第三方组件的最佳方法是什么?

Svn 什么';在subversion项目中管理更新第三方组件的最佳方法是什么?,svn,Svn,我经常有基于svn的项目,其中包括第三方组件,如TinyMCE(浏览器中所见即所得)编辑器。这包括数十个文件夹,其中可能包含数百个文件 理想情况下,当我想将TinyMCE更新到最新版本时,我希望能够将顶级TinyMCE文件夹复制到我的工作副本中,提交更改并离开 显然,这是行不通的,因为通过在顶部进行复制,我将清除通过工作副本嵌套的所有现有.svn文件夹 手动更新所有文件需要几个小时 有没有一个很好的方法来管理svn 或者,是否有任何工具(在linux或OS X上)可以帮助我更轻松地执行“手动”复

我经常有基于svn的项目,其中包括第三方组件,如TinyMCE(浏览器中所见即所得)编辑器。这包括数十个文件夹,其中可能包含数百个文件

理想情况下,当我想将TinyMCE更新到最新版本时,我希望能够将顶级TinyMCE文件夹复制到我的工作副本中,提交更改并离开

显然,这是行不通的,因为通过在顶部进行复制,我将清除通过工作副本嵌套的所有现有
.svn
文件夹

手动更新所有文件需要几个小时

有没有一个很好的方法来管理svn


或者,是否有任何工具(在linux或OS X上)可以帮助我更轻松地执行“手动”复制?

我认为您应该查看该属性。

我认为您应该查看该属性。

管理subversion中更新第三方组件的最佳方法“

。作为奖励,您可以修改第三方组件的代码,并且由于合并,这些修改将在更新后仍然有效。

“管理subversion中更新第三方组件的最佳方法”

。作为奖励,您可以修改第三方组件的代码,并且由于合并,这些修改将在更新后仍然有效。

我不明白“显然,这不起作用,因为通过在顶部进行复制,我将清除嵌套在工作副本中的所有现有.svn文件夹。”。你正在使用哪个操作系统

我使用Linux Web服务器作为我的SVN服务器,使用Windows计算机进行工作。没有“wipping out”.svn文件夹这样的事情:您只需将文件复制到签出目录,因为它们已更改,所以我只需使用TortoiseSVN提交它们

这不是保持结构的“最佳方式”。但它是有效的

磁盘空间通常不是一个问题,因此您通常可以创建第三方应用程序的存储库,这样您就不需要依赖internet访问来构建/部署应用程序

svnrepositories
  myprojects
    myprojet
  third-party
    tinymce
      1.3
而他们,使用属性,就像BrianLy指出的那样

你可以在互联网上找到外部资源。但请记住,缺点是资源可能脱机,您需要访问internet。

我不明白“显然,这不起作用,因为通过在顶部复制,我将清除嵌套在工作副本中的所有现有.svn文件夹。”。你正在使用哪个操作系统

我使用Linux Web服务器作为我的SVN服务器,使用Windows计算机进行工作。没有“wipping out”.svn文件夹这样的事情:您只需将文件复制到签出目录,因为它们已更改,所以我只需使用TortoiseSVN提交它们

这不是保持结构的“最佳方式”。但它是有效的

磁盘空间通常不是一个问题,因此您通常可以创建第三方应用程序的存储库,这样您就不需要依赖internet访问来构建/部署应用程序

svnrepositories
  myprojects
    myprojet
  third-party
    tinymce
      1.3
而他们,使用属性,就像BrianLy指出的那样


你可以在互联网上找到外部资源。但是请记住,缺点是资源可能脱机,您需要访问internet。

使用svn:externals,包括修订锁定参数-r{REV.NR.},这确保您不会过早地从第三方供应商svn存储库获取更新


然后您可以在自己的时间内升级到第三方组件的最新版本,只需将-r{REV.NR.}参数设置为外部存储库的最新版本。

使用svn:externals,包括修订锁定参数-r{REV.NR.},这确保您不会过早地从第三方供应商svn存储库获取更新


然后,您可以在自己的时间内升级到第三方组件的最新版本,只需将-r{REV.NR.}参数设置为外部存储库的最新版本。

将库版本包括到路径中对我有效。通过这种方式更新版本,您只需删除旧版本,添加新版本,并将引用指向新路径

$ svn del vendor/tinymce-3.4.2
$ svn add vendor/tinymce-3.4.3
$ # edit references to point to vendor/tinymce-3.4.3

但是如果您想对库进行更改,我会选择上面评论的供应商分支。

将库版本包含到路径中对我有效。通过这种方式更新版本,您只需删除旧版本,添加新版本,并将引用指向新路径

$ svn del vendor/tinymce-3.4.2
$ svn add vendor/tinymce-3.4.3
$ # edit references to point to vendor/tinymce-3.4.3

但是如果您想对库进行更改,我会选择上面评论的供应商分支。

这不要求第三方组件也是svn版本的资源吗?在本例中,它只是一个从web下载的内容文件夹。这不要求第三方组件也是svn版本的资源吗?在本例中,它只是一个从web下载的内容文件夹。我原以为如果复制第三方库的新版本,.svn文件夹将保留下来。副本应该只替换现有文件并添加新文件,而不删除任何内容。什么样的副本可以合并这两种结构?在Windows下,拖放(有时ctrl-)可以做到这一点,但您必须向它保证您确实希望覆盖现有文件。额外的文件将以静默方式添加,预先存在的(.svn)文件夹和文件将保留,但遗憾的是,从更新中丢失的旧文件将不会被删除。我原以为,如果复制第三方库的新版本,.svn文件夹将保留。副本应该只替换现有文件并添加新文件,而不删除任何内容。什么样的副本可以合并这两种结构?在Windows下,拖放(有时ctrl-)可以做到这一点,但您必须向它保证您确实希望覆盖现有文件。额外的文件将以静默方式添加,预先存在的(.svn)文件夹和文件将重新保存