在构建不良的回购/项目设置中添加新的 SVN“回购”

Posted

技术标签:

【中文标题】在构建不良的回购/项目设置中添加新的 SVN“回购”【英文标题】:Add new SVN "repo" in poorly constructed repo/project setup 【发布时间】:2011-02-22 23:18:59 【问题描述】:

不幸的是,这个问题的答案并不像听起来那么简单......但我希望它仍然可以相对简单。请通读一遍,然后告诉我答案是:“svnadmin create...duh”

我正在为一家以奇怪的方式设置 SVN 服务器的公司工作(至少就我习惯的方式而言)。我们都去过那里,对吧?

而不是给每个项目一个单独的存储库...他们在服务器上有一个名为“/var/www/svn/repos/”的文件夹,这是实际的 SVN 存储库(具有 conf/、db/、README.txt等)。然后他们通过将***文件夹添加到 ONE 存储库来区分他们的项目(例如:Project1、Project2 等)

我不喜欢这种设置,也许有一天我会改用我习惯的设置,每个项目都有自己的存储库(带有单独的日志、数据库等)

但我的问题是:将新的空项目添加到当前设置的最佳方法是什么?有没有通过使用 svnadmin 向 repo 添加一个新的***文件夹/项目?它可以/应该只是一个空文件夹,我将在其中开始构建一个新项目。

我知道我可以通过检出整个单一存储库,然后将新的***文件夹添加到我的本地检出中,然后重新提交来做到这一点。但我真的不想这样做,因为有人创建了只是 GB 日志数据的文件夹/项目......我不想等待下载这个只是为了添加一个空文件夹。

如果您需要了解更多信息,请告诉我。我确实在相关服务器上具有 root/sudo 访问权限。

提前感谢您的帮助!

戴夫

编辑:这家公司使用 SVN 的方式,没有人检查完整的回购......他们只是检查他们感兴趣的文件夹/项目。所以我没有本地结帐可用的任何地方在 SVN 存储库目录结构中“高”到足以运行“svn mkdir”命令。

【问题讨论】:

【参考方案1】:

嗯,这实际上是一种常见的做法。要创建新的项目路径,只需使用选择的 Subversion 客户端创建一个与其他项目同级的新路径,并使用新项目的名称。

【讨论】:

只是为了解释一下,如果你的 repo 在hostname/svn,你可能会做类似“svn mkdir hostname/svn/new_project -m 'Creating the new project location.'”之类的事情。 嗯......也许我误解了......我在尝试这样的事情时遇到错误,因为主机名/svn(或/var/www/svn/repos/在我的情况下)不是“工作副本”……这是有道理的,不是,它是服务器上的实际存储库(带有 conf、db 等) 很高兴看到正在输出的命令和错误。您的存储库的基本 url 是什么? 我错了...我试图在服务器端执行此操作,直接到 repo。一旦我从另一台机器作为客户端尝试,它的工作方式与宣传的完全一样。如果您不在工作副本中并将其传递给尚不存在的存储库中的位置,我在其他地方没有在网上发现任何迹象表明“svn mkdir”会起作用。但我想这个功能更有意义,我想得越多。谢谢! 如果你不介意我问,为什么有人更喜欢每个项目设置的这种单一存储库和文件夹,而不是我更习惯的每个项目设置的存储库?在此设置中,我对与我正在处理的项目完全无关的提交日志和提交编号感到困惑(它们与恰好在 repo 中的其他项目有关)。

以上是关于在构建不良的回购/项目设置中添加新的 SVN“回购”的主要内容,如果未能解决你的问题,请参考以下文章

符号歧义和回购布局

自从赢得 10 秋季创作者更新 [本地回购] 以来,与基础相比非常慢(乌龟)SVN?

Maven项目中的人工本地回购

GitLab:从回购断开文件

更新AWS Amplify中现有应用程序的回购访问密钥

Gradle + Jenkins + Artifactory Maven 回购?