0

我想知道是否可以为具有两个不同来源的特定文件夹设置一个 SVN 颠覆系统(顺便说一句,我在 Ubuntu 11.10 上)并同时跟踪更改?

情况如下:

  1. 有一个定期更新的开源项目(来自 svn://...)。我以此为基础添加一些我需要的功能。我无权在开发人员 svn 上提交我的更改或进行分支或其他类似操作。

  2. 修改我的代码我通过本地 svn (file:///usr/...) 跟踪我修改的内容

我想做的是不时将我的版本与官方更新合并,但仍然保留我个人的本地 svn。我该如何设置?

或者拥有 SVN(用于官方颠覆)+ 其他一些系统(如 Git)会更容易吗?

p/s/ 我自己只在带有 Subclipse 插件的 Eclipse 中编写代码。

更新1:

浏览 SVN 书,这就是我应该如何在我的情况下创建一个分支的方式:

初始导入:

svn import /path/to/3rd-party-code \
          file:///usr/.../vendor/name/current \
          -m "importing initial 1.0 vendor drop"

标记它:

svn copy file:///usr/.../vendor/name/current  \
         file:///usr/.../vendor/name/1.0      \
         -m "tagging name-1.0"

带到后备箱:

svn copy file:///usr/.../vendor/name/1.0  \
         file:///usr/.../trunk/        \
       -m "bringing name-1.0 into the trunk"

然后从主干结帐并开始修改。那么,“外部”如何改变?

更新 2:

这就是一切都应该从头开始的方式吗:

svnadmin create /usr/.../svnrepo

svn import svn://path/to/3rd-party-code \
     file:///usr/.../svnrepo/name/branch/official \
     -m "importing initial XXXX rev. vendor drop"

svn copy file:///usr/.../svnrepo/name/branch/official  \
         file:///usr/.../svnrepo/name/trunk      \
         -m "bringing rev XXXX into the trunk"

svn propedit svn:externals svn://path/to/3rd-party-code name/branch/official

合并:

svn merge -r XXXX:HEAD name/branch/official
svn ci -m "Merged YYYY official revision to trunk"

更新 3:

svnadmin create /usr/.../svnrepo

svn mkdir -m "Create folders" \
          file:///usr/../svnrepo/name/branches \
          file:///usr/../svnrepo/name/branches/official \
          file:///usr/../svnrepo/name/trunk

外部:

svn propedit svn:externals file:///usr/.../svnrepo/name/branches/official

(输入“svn://path/to/3rd-party-code”)

svn copy file:///usr/.../svnrepo/name/branches/official  \
         file:///usr/.../svnrepo/name/trunk      \
         -m "bringing rev XXXX into the trunk"    

现在,问题是当我“合作”主干时,我得到以下结构:

official/svn:externals/folder1/file1

这是我不想要的东西:)

合并:

svn merge name/branches/official
svn ci -m "Merged YYYY official revision to trunk"
4

2 回答 2

0

您的情况在关于供应商分支的章节中的SVN 书中进行了描述。如果开源项目也使用 SVN 存储库,您还可以利用外部功能

于 2012-01-17T16:01:04.633 回答
0

具有两个不同来源的文件夹并同时跟踪更改?

使用 SVN 是不可行的 - WC为一个repo提供了一条路径

但是你的任务可以被 svn:externals 和“供应商分支”策略覆盖:

  • 定义为 svn:externals 的外部项目的单独分支(在 URL 中不使用 PEG-revision)
  • 你的发展发生在主干
  • 分支(更新新版本后)定期合并到主干
于 2012-01-17T16:03:19.157 回答