问题标签 [svn-externals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14365 浏览

svn - 如何更新 Subversion 外部组件

我们有几个 subversion 存储库:一个用于公共代码,一个用于每个顶级项目。顶级项目有一个 svn:external 链接到公共存储库的主干。

在我们构建项目的发布之前,我们创建顶级项目的一个分支,并在公共存储库中创建一个并行分支。

我们如何自动确保分支顶级项目中的 svn:external 属性指向公共目录中的并行分支 - 目前它将指向公共存储库中的“主干”。我们目前不得不在分支项目中手动编辑它。

谢谢

0 投票
3 回答
162 浏览

svn - 保护svn外部

例如,我在带有外部的 svn 中有一个项目

我需要在 external-lib 目录中添加一个文件(一个 Makefile),我想在我的存储库(myproject)中将其 commint,而不是外部的。不要修改外部存储库非常重要。可能吗?我想使用外部存储库的头版本。

0 投票
1 回答
445 浏览

svn - 自动解析项目上的引用路径

我想我误解了一些关于 Visual Studio 的项目引用或 SVN:externals - 也许两者都有:) -。

事实上,我有三个项目:

  • A 本身没有引用
  • B 指 A 的 DLL,更新时通过 SVN:externals 签出(到项目目录内的某个位置)。
  • C,在更新时,将(通过 SVN:externals)A 和 B 的 DLL 检出到项目内的目录(比如说path.to.project.C\Libraries\Apath.to.project.C\Libraries\B

在项目 C 上,当我添加 A 的 DLL 作为路径path.to.project.C\Libraries\A的引用时,Visual Studio 将path.to.project.C\Libraries\B作为其路径。在我看来,这忽略了我的选择并在错误的路径上自动解析 A 的 DLL。

使用此配置我:

  • 更新一些 A 的代码,编译项目,并将 DLL 提交到存储库。
  • 从存储库项目更新 C.
  • C 项目最终使用了 A 的 DLL 的过时版本(因为它在从 subversion 签出的项目 B 的文件上搜索 A 的 DLL。此时,这些文件没有使用最后的更改进行更新)。

任何提示将不胜感激。

0 投票
2 回答
229 浏览

svn - 将带有子模块的 Git 存储库导入 Subversion 存储库

将带有子模块的 Git 项目导入 Subversion 存储库的最佳方法是什么?

不确定是否重要,但子模块指向 github 上的 Kohana 核心和模块存储库。如果我可以在 Subversion 中引用这些外部存储库,那就太好了,但这绝对不是必需的。

谢谢,迈克

0 投票
0 回答
3515 浏览

svn - 如何让 Subversion 忽略外部以获取未来的更新和状态报告?

我正在开发一个使用内部开发工具的项目。在我的项目上工作时提供该工具的源代码很方便,所以我跑了

其中 svn.externals 文件包含:

在一个专门用于我关于该工具的个人笔记的文件夹中。

不幸的是,这会导致包含大量有关工具的信息(以及由它定义的大量外部,在其分支和标签中定义的外部,在其每个分支和标签中定义的外部中定义的外部,等等)被包含在内在svn statussvn update报告。做了更多阅读,我尝试为参考代码设置一个修订号。让代码是最新的会很好,但是删除 293 行svn update和 138 行svn status是一个更高的优先级,定期修改修订号就足够了。因此,我将 svn.externals 修改为:

希望它随后会忽略此文件夹的内容,但这似乎没有帮助。

如果我能够移除SourceOfToolForReference/Software/branches/.

使用该--ignore-externals标志确实可以解决问题,但我不想在每次运行状态或属性检查时都输入它。(好吧,我可以使用别名,但是其他任何想要处理我的项目的人都需要相同的别名,而且他们中的很多人使用 TortiseSVN,这需要一些额外的点击来设置这个标志。我可以导出所有 1.1GB工具中的代码,然后将其导入我的项目,但这似乎是一种巨大的空间浪费。我可以尝试递归设置修订标志,但如果这是唯一的原因,我不想对工具进行更改.

如何让 Subversion 忽略外部以获取未来的更新和状态报告?

编辑:给这一个冲击......如果在接下来的 24 小时内没有人回答,我将不得不将参考代码放在不同的结帐目录中。不全是坏事,但这正是我想象的外部设备擅长的事情。

0 投票
2 回答
3285 浏览

svn - svn:用同名的本地文件夹替换外部的干净方法

我有一个在不同地方签出的存储库。我有一个文件夹 X 是另一个存储库的外部。我希望 X 是本地的。还有其他问题,但他们似乎没有遇到我的困难。

我所做的是我编辑了 svn:externals 并删除了该行。然后我提交了回购。然后我拿走了文件夹,删除了其中的所有.svn条目(使其成为常规文件夹),然后svn add编辑它,然后提交。这工作得很好。

但是,当我更新了回购的另一个结帐时,我遇到了问题。第一个错误类似于:

好的,已经svn up失败,但我尝试删除文件夹并重新更新。现在它管理重新获取所有内容,但现在我收到一个新错误:

我再次尝试更新,但没有任何反应。我删除了该文件夹中的一个文件并从根目录再次更新,没有任何反应。我删除了文件夹 X,什么也没有发生——所以它似乎只是忘记了它!我唯一的办法是删除 X 的根目录并svn up从下一级重新开始(因为所有这一切也发生在也是外部的子文件夹中)。

不好..我不想在签出此存储库的所有站点上进行一些手动 rigamarole。该怎么办?

0 投票
2 回答
13041 浏览

git - git & svn externals - 最终解决方案了吗?

这是我目前用于我的 svn 项目的工作流程(我从不使用 svn 分支,有些项目也由其他人积极参与):

  • 在服务器上,执行git svn fetch可能需要数小时的初始操作。还要创建一个“构建”分支。
  • 在开发机器上克隆现在很快:git clone srv://project.git, git checkout build然后git update-refs ..., git svn fetch恢复到 svn 存储库的链接
  • 工作,承诺,工作承诺,...
  • 检查事情是否正常,git push build到服务器并触发该分支的 Hudson 构建
  • 存储工作,以便我可以从另一台机器上工作,同时推送构建分支
  • 满意后,按逻辑步骤将提交合并在一起(例如,每个错误一个),提交到 svn 并重置所有内容,例如git checkout master, git merge build, git svn dcommit, git push, git checkout build, git rebase master, git push build

输入 svn 外部。我已经在这里尝试了每个脚本,但都失败了。我的外部设置如下:

并且脚本执行诸如尝试/path/to/x在文件系统的根目录中创建和git svn fetch /path/to/x. 此外,单个文件似乎会导致更多问题。(子问题 1:这些脚本编写的 svn:externals 格式是什么?)

修改其中一个脚本来处理我的情况并正确复制我所追求的目录结构似乎并不难,但是我遇到了一个主要问题:如果我同时更改 x 和 y/z 中的文件目录,我看不到将其加入单个 svn 提交的方法,这就是我首先开始使用 git 的原因之一。

因此,问题是:有没有一种方法可以复制上述工作流程,仅使用某个 svn 存储库的一部分,以便我可以在根目录中执行 svn dcommit?我更喜欢在 linux 和 windows 上都可以使用的即用型解决方案。

编辑我快速破解了我找到的一个脚本,并使其复制了 svn 外部的目录结构。我无法克隆单个文件,这里是输出:

子问题2:通过git svn 获取单个文件是不可能的吗?

0 投票
1 回答
4623 浏览

svn - svn:externals : 在本地目录中有多个外部存储库

是否可以将 2 个(或更多)外部存储库链接到本地​​目录?

例如,我有一个名为 externals 的文件,其中包含:

我这样声明我的财产:

如果我尝试使用后一个文件,则只使用最后一行:

我想做的事可能吗?
感谢您的回答。

0 投票
1 回答
231 浏览

svn - Svn Externals,您能否将来自外部的文件与您的常规工作副本混合在一起

我希望能够拥有一个框架的工作副本,然后我想为某些扩展创建另一个 repo,在其中我将这些扩展与外部组件一起拉入我的框架中。我看到的问题是,因为我以前没有使用过外部,你似乎只需要拉入可以从项目的其余部分中分离出来的完整目录,例如

但是,如果您需要一些外部目录结构包含一些正常框架结构的东西,例如:

我希望这是有道理的,但基本上我想拥有我的工作副本,然后从另一个 repo 中提取文件,这些文件和文件夹位于与我的工作副本相同目录中的文件和文件夹中。

0 投票
1 回答
620 浏览

svn - svn:合并期间的外部问题

让我们考虑以下 SVN 结构:
* /Project_1/trunk/1.txt
* /Project_2/trunk/dir1
* /Project_2/trunk/dir2

让我们假设以下情况会导致错误:
* 您将 svn:externals 添加到 /Project_2/trunk/dir1 和 /Project_2/trunk/dir2 ,因此它看起来像这样:
svn:externals ^/Project_1/trunk/1.txt 1。 txt
* 将 Project_2/trunk 分支到一个新分支并在那里进行一些更改
* 将更改从主干合并到您的分支
* 将合并的更改提交到分支 <-- 如果失败!

错误消息是这样的:错误:无法同时提交 '.....\1.txt' 和
错误:'.....\1.txt' 因为它们引用相同的 URL