- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我的第一个问题,我还没有在其他地方看到它得到解决。我在一家研究机构工作,所以我们希望能够说出哪个代码版本产生了一组特定的结果。我的问题是我的分析是否正确,如下图所示(请注意,版本节点 ID 仅用于说明目的,并不对应于 SVN、Git 或 Hg 中的实际版本 ID。带有字母的版本号表示未提交的代码状态在 SVN 中,整数版本 ID 代表 SVN 中的提交状态,Git/Hg 框中的所有版本 ID 代表提交代码状态):
示例场景:
假设有两个工作副本“A”和“B”,从修订版 1 开始。
“A”修改函数 foo()
中的默认值,生成结果,并 checkin 版本 (repo ver2)。
“B”不修改 foo()
,而是修改代码的其他部分,使用旧的默认值生成结果,并尝试 checkin 使用过的版本1b.它失败是因为需要更新,但是在 merge 版本 2 和 1b 的过程中,SVN 将丢失版本 1b 在 foo()
中使用不同默认值的事实。这不会被检测为冲突,因为“A”和“B”没有更改代码的相同部分。版本 3 与版本 1b 不同,因此无法保证可复制性。
我无法使用 TortoiseSVN 在我的本地驱动器中模拟这种情况(我无法创建工作副本,因为 SVN Checkout 错误 — “无法打开 ra_local session 到 URL”)。我确实知道 Git 和 Hg 都会正确处理这种情况并在历史记录中显示版本 1b(如果它已提交并且未使用 rebase 功能)。 (我相信当不涉及任何分支时,rebase 本质上是 SVN 中的正常行为。)
这个分析是否正确?
最佳答案
您的分析原则上是正确的,尽管我反对“版本 1b”命名。版本 1b 在 SVN 领域中永远不存在,因为 1b 是提交前工作目录的状态。
您的工作流程有一个基本问题:当您想要可靠地识别结果时,您将首先必须获取一个标识符,然后生成结果。 checkin ,然后生成。如果这会带来可靠性问题,请 checkin 分支,生成结果,然后 merge 。分支 merge 方法类似于 git 或 hg 等分布式 VCS 软件的工作方式,其中本地存储库是隐式分支,推送是隐式 merge 。
关于git - Subversion 中遗漏版本的可能性(研究环境),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839778/
我们在我们的开发服务器上本地使用 Subversion。我们需要为我们的客户提供相同的访问权限。这可以通过让服务器在网络上发布它来实现,但由于其他一些我不想透露的原因,我们不想发布它。 我想知道的是,
我目前正在使用远程 svn 服务器。但是有时我必须离线工作(因为远程服务器位于封闭的网络上,因此无法连接到互联网)。我想要做的是将 svn 服务器复制到我的本地服务器(也就是我的笔记本电脑)。 我可能
我使用 visual studio 2005,所以集成是必须的。 谢谢 最佳答案 在 VS2008 中我更喜欢 Tortoise SVN 和 Ankh。 祝你好运! 关于windows - 对于以前从
我目前有一个小组颠覆存储库,其中有多年的历史。公司已经提出从现在开始托管我们的颠覆。我想知道将我们的存储库添加/导入/合并到 Corps 存储库的最佳方法是什么。我想保留历史记录,但我不介意我是否会丢
我们在客户端和服务器上运行 Subversion 1.5.4。是否可以直接从 Subversion 1.5 升级到 1.7 版?需要哪些步骤来做到这一点? 最佳答案 我读了release notes
我正在尝试使用 Ansible 颠覆模块从我的存储库服务器中 check out SVN 存储库。我已经在我的服务器中配置了一个 svn 存储库。我正在尝试使用 Ansible 剧本和颠覆模块将其 c
当前是否有允许在 SVN 中进行独占结账的功能? Delphi有没有好的插件可以通过IDE访问? 最佳答案 SVN有一个“locking”的概念,大致对应于独占结账。例如,在TortoiseSVN中这
我刚刚将版本控制系统迁移到 Subversion。我们选择使用最新版本的 Subversion 1.7。当我切换到 Delphi 编辑器中的历史 View 时,出现错误: The path 'path
我在 Eclipse 中没有看到任何从 SVN(通过命令行)明确 checkout 的项目的 Subversion 图标,我不确定它何时停止工作。 我已经尝试过 Subclipse 和 Subvers
我在我的服务器上成功安装了 subversion。当我运行命令时: which svn 我收到回复: /usr/bin/svn 我使用以下命令在我的根目录中创建了一个存储库,它是我的 httpdocs
我将 IntelliJ IDEA 6.0.6 配置为使用 Subversion 进行版本控制。当我右键单击项目中的 Java 文件时,Subversion 菜单项现在出现在上下文菜单中。但是,所有子菜
我想 checkout ,然后根据需要更新 Django Subversion trunk在 Mac OS X Leopard 10.5.5 机器上。 我只对在我的 Mac 上更新 Django 代码
我想在 macOS 上将 Subversion 存储库转换为 Mercurial。我已经制作了 svn 存储库的本地副本。然后我尝试了 hg convert --source-type svn --d
当我尝试从 GitHub 获取最新版本时遇到此错误。做您对此错误没有任何经验,请帮助我!!! 我尝试了一个全新的结帐并得到了同样的错误。请注意,它仅在我从 Github checkout 时发生。当我
我正在尝试通过 SVN+SSH 从 Windows Server 2003 计算机设置计划的 Subversion 提交作为一项任务。我希望提交脚本以 SYSTEM 用户身份执行。所以我猜想,为了让它
1、获取svn程序 2、安装 Subversion(以下简称SVN)的服务器端和客户端。下载下来的服务器端是个 zip压缩包,直接解压缩即可,比如我解压到 E:\subversion 。客户端安装
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
提交是由 Subversion 原子执行的吗? 如果提交失败会怎样? 是否有一些文件提交成功而一些失败?如果是这样,我该怎么做才能回到正确的状态? 最佳答案 是的,提交是原子的——这里是 citati
我有一个关于 Subversion 的问题。我一直是最终用户,所以我对其实际工作原理的了解非常有限(所以如果这是一个愚蠢的问题,请原谅)。 我已经安装了 WAMP 并使用它进行了我的初始开发和测试。因
我有一个包含目录树的存储库。其中一个目录是数千个文件的家。这个目录很少被修改,但它使诸如“根目录上的 svn 状态”或“根目录上的 svn 更新”之类的操作变得如此缓慢,以至于它们不再实用。 有没有办
我是一名优秀的程序员,十分优秀!