Questions tagged «svn»

SVN是“ Subversion”的缩写,是一个开源版本控制系统

5
我们可以在没有任何网络访问权限的情况下在本地计算机上设置svn服务器吗?
我想在没有任何网络访问权限的情况下在计算机上设置SVN存储库。我正在编写没有任何协作者的代码,所以我不希望它公开。 我读了这篇文章,但是它建议使用提供免费存储库的在线SVN存储库服务。在这种情况下,我的代码将公开可用(包括在免费计划的条款中)。 因此,我想知道是否可以在Windows XP计算机上设置本地服务器,即使我没有任何互联网连接也只能访问该本地服务器?
25 svn 

4
如何将库的不同版本置于版本控制之下?您是否使用标签?还是分支机构?还是其他方法?
我最近开始将代码置于版本控制下(在实验室中,我正在SVN下工作,而我自己的代码在github中(显然是git))。在使用版本控制之前,我曾经做过类似的事情。我有一个带库名称的文件夹,其中有许多带版本号的文件夹。每当我想开始使用新版本时,我都会复制上一个版本,将名称更改为新版本并开始实施。 但是,当将文件夹置于版本控制下时,这似乎是多余的。除了冗余之外,如果有人想获得最新版本,那么只要他import/ 她就可以下载所有版本clone。 现在,我看到了使用版本控制执行此操作的许多方法,但是由于我是新手,所以我不知道哪种方法更可维护。 方法1:使用标签 如果我正确地理解了标签,那么您将拥有主分支,您可以进行所做的任何更改并使用版本进行标签。然后,当您想要获得它的工作副本时,您将获得带有特定标签的副本。(如果我错了纠正我) 方法2:分支版本 在这种方法中,主要分支将是开发分支。时不时地制作一个稳定的版本(例如v1.2.0),您为该版本创建一个分支,并且永远不要提交它。这样,如果您要下载某个版本,则可以从该分支获取代码。尽管我说过您从未承诺过这样做,但有可能进行错误修复并承诺到旧版本的分支以保持旧版本运行。例如,如果当前版本为v2.0,但是有些人想要使用v1.2,则可以从中获取另一个分支v1.2,即v1.2.1提交错误修复程序,或者仅将版本保持不变,v1.2然后提交错误修复程序。 所以分支看起来像这样: v1.2.1 v1.2.2 / / v1.0.0 v1.2.0--------- v2.0.0 / / / -------------------------------------- dev 这样,您可以为每个次要版本更新创建分支。(请注意,在上图中,v1.2.1和v1.2.2或在v2.0.0发布之后创建的,因此它们不是v1.2.0和v2.0.0之间的开发的一部分。可以将其视为对较早版本的支持) 方法3:分支发展 此方法与以前的方法相反。主分支将是最新的稳定版本。每当使用新版本时,都将创建一个分支(用于开发),使用您的代码,并在代码稳定后将其与主分支合并。 在这种情况下,分支看起来像这样: ________ ____ ________________ _____ dev / \/ \/ \/ ---------------------------------- latest_version 可能需要结合标签一起执行此操作吧? 问题! 无论如何,我的问题是,根据您的经验,这些方法中的哪一种被证明更实用?有没有已知的最佳方法(可能我没有弄清楚自己)?这些事情通常是怎么做的?

5
为什么Git用户说Subversion在本地没有所有源代码?
我只是继续阅读关于SO的内容,所以请原谅我,但是我读到的所有内容都表明,与Subversion相比,Git的一个主要优势是Git将所有源代码提供给本地开发人员,而无需在其中做任何事情。服务器。 由于我有限地使用SVN和TortoiseSVN,所以我拥有所有源代码,或者至少我以为自己做到了。例如,我有一个网站。我将其上传到SVN。我仍在本地运行我的网站,不是吗?如果有人提交了更改但我没有连接,则是否拥有Git都没有关系,直到我重新连接到服务器。 我不明白。除了这一点之外,我没有要求对另一种进行重新定义。
23 git  svn 

7
您如何阅读他人的代码?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 几乎每个高级程序员都说,阅读其他专业人员的代码非常有用。通常他们建议开源。 你读不读?如果这样做,读取代码的频率和程序是什么?而且,对于新手来说,处理SVN(一堆文件)有点困难。有什么解决方案?

5
转到git时,如何处理大型svn历史记录?
编辑:与某些类似的问题不同,例如将多GB SVN存储库移至Git 或 /programming/540535/managing-large-binary-files-with-git 我的方案不涉及几个子项目可以很容易地转换为git子模块,也不能转换为一些非常适合git-annex的非常大的二进制文件。它是一个单一的存储库,其中的二进制文件是测试套件,与相同修订版的主要源代码紧密耦合,就像它们是编译时资产(例如图形)一样。 我正在研究从svn切换旧的中型/大型(50个用户,60k修订,80Gb历史记录,2Gb工作副本)代码存储库。随着用户数量的增加,主干中流失很多,并且功能通常分散在多个提交上,这使得代码审查变得困难。同样,如果没有分支,就无法“排除”不良代码,只有在提交到主干后才能进行检查。我正在研究替代方案。我希望我们可以转到git,但遇到一些问题。 就git而言,当前仓库的问题是大小。那里有很多旧文件,转换为git时用--filter-branch清理它可以将文件大小减小一个数量级,大约为5-10GB。这仍然太大。大型存储库的最大原因是,有很多二进制文档正在输入到测试中。这些文件的大小在.5mb到30mb之间,有数百个。他们也有很多变化。我看过子模块,git-annex等,但是在子模块中进行测试感觉很不对劲,对许多想要完整历史记录的文件都有附件也是如此。 因此,git的分布式特性实际上是阻止我采用它的原因。我并不真正在乎分布式,我只想要便宜的分支和强大的合并功能。就像我假设99.9%的git用户那样,我们将使用一个有福的,裸露的中央存储库。 我不确定我是否理解为什么每个用户在使用git时都要拥有完整的本地历史记录?如果工作流不是分散的,那么该数据在用户磁盘上做什么?我知道在git的最新版本中,您可以使用仅具有最新历史记录的浅表克隆。我的问题是:将其作为整个团队的标准运作模式是否可行?可以将git配置为始终很浅,以便您只能在中央拥有完整的历史记录,但是默认情况下,用户只有1000转的历史记录?当然,可以选择仅将1000 revs转换为git,并保留svn repo用于考古。但是,在这种情况下,在对测试文档进行了数千次修订之后,我们将再次遇到相同的问题。 什么是使用Git含有许多二进制文件,你大回购了良好的最佳实践也希望历史?大多数最佳实践和教程似乎都避免了这种情况。他们解决了几个巨大的二进制文件的问题,或建议完全删除二进制文件。 浅克隆是否可作为正常操作模式使用?还是“骇客”? 子模块是否可以用于在主源版本和子模块版本之间具有严格依赖性的代码(例如,在编译时二进制依赖性或单元测试套件中)? git存储库(在内部)的“太大”是多少?如果可以将其降低到4GB,我们应该避免切换吗?2GB?
23 git  svn 

6
仍然使用Subversion的特定原因?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我想为我的公司选择一个版本控制系统。到目前为止,我知道我有Git,Subversion和Mercurial。 这些天来,我发现Git是最常用的,所以我不禁要问:仍然有任何特定的原因仍然需要使用Subversion,还是应该直接使用Git?

4
我们是Subversion极客,我们想知道Mercurial的好处[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 看过我是Subversion极客之后,为什么我应该考虑还是不考虑Mercurial或Git或任何其他DVCS。 我有一个相关的后续问题。我阅读了该问题,并阅读了推荐的链接和视频,我看到了好处,但是我没有看到人们在谈论的整体思维转变。 我们的团队由8至10名开发人员组成,他们在一个由60个项目组成的大型代码库中工作。我们使用Subversion并有一个主干。当开发人员启动新的Fogbugz案例时,他们将创建一个svn分支,在该分支上进行工作,完成后,它们将合并回主干。有时它们可​​能会在分支上停留更长的时间,并将中继合并到分支以接收更改。 当我看着Linus谈论人们创建分支而不再做分支时,那根本不是我们。我们每周可能会创建50-100个分支,而不会出现任何问题。最大的挑战是合并,但我们在合并方面也相当出色。我倾向于通过fogbugz case&checkin合并,而不是合并分支的整个根。 我们永远不会在远程工作,我们永远不会在分支机构之外建立分支机构。如果您是代码库中该部分中唯一的工作人员,则与主干的合并将顺利进行。如果其他人修改了同一段代码,则合并可能会变得混乱,您可能需要进行一些手术。冲突就是冲突,除非有足够的智能来理解代码,否则我看不出大多数系统在大多数情况下如何做到正确。 创建分支后,接下来要检出60k +个文件会花费一些时间,但这对于我们使用的任何源代码控制系统都是一个问题。 我们没有看到的任何DVCS是否有一些好处对我们有很大帮助?
22 git  svn  mercurial  dvcs 

2
使用Subversion作为工件存储库而不是特定的工件管理工具
TL; DR:为什么使用Apache Archiva或Sonatype Nexus之类的东西作为工件存储库而不是Subversion? 我目前使用的构建系统有很多二进制Blob(图像,声音文件,已编译的二进制文件等),既可作为构建的输入也可作为输出。我们用于管理这些文件的系统非常临时;有些代码和代码一起被检入到Subversion存储库中,有些代码则存储在任何正式版本控制之外的其他位置。 我正在考虑将其合并,因此我们拥有一些更加自洽和易于使用的功能,并将二进制工件与代码分开。 Google告诉我,有一些可用的工件存储库(Archiva,Nexus, Artifactory …),但是从阅读的内容来看,与Subversion相比,使用它们没有任何优势。这将为我们照顾二进制文件-对于某些二进制文件已经做到了,我们只想重新排列存储库布局以将它们与代码分开-并具有明显的优势,因为我们已经拥有Subversion服务器和专业知识。 所以。与使用像Subversion这样的通用版本控制工具相比,使用专用的工件管理系统有什么优势?

2
在哪里可以找到“针对Git用户的SVN”资源?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 因此,我从事了该公司使用SVN的工作(但将来会转移到Git)。问题是我不了解SVN。我已经尝试过许多Google查询,而我所能找到的都是SVN-> Git教程,“为什么Git比SVN更好”博客以及一个特定的“备忘单”,它给出了(一些)可比的命令。 缺少阅读O'Reilly关于SVN的书,对于Git用户,向SVN的简要说明(但不是太简短)是什么?
18 git  svn 

5
哪个版本控制系统可以管理所有方面?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 5年前关闭。 几个月前,我钻研了Subversion和GIT,感到很失望。他们可以很好地处理源代码,但不能处理其他方面。例如,受版本控制的网站需要管理文件/目录所有权,文件/目录的读写访问权限,访问控制列表,时间戳,数据库内容。和外部链接。是否有一个版本控制系统可以像从一个月前的备份中重新加载一样完美地完成还原?

4
工作流程:在Git中使用无锁定的二进制文档格式(从Subversion移出)
我们是一家软件咨询公司,为不同客户提供大量项目。传统上我们使用Subversion,但目前正在考虑迁移到Git。 我们生成的文档中有很大一部分与客户共享(需求,全局设计,测试规范等),我们使用MS Office生成这些文档。在Subversion中,我们可以使用其“锁定”功能来确保没有人同时编辑同一文档。在Git中,您无法执行此操作,因为git具有分布式特性,因此它没有锁。 锁实际上只是一种通信机制,但它是一种非常有效的机制。 当前,我们的代码和面向客户的文档通常位于不同svn存储库的不同子文件夹中。转到git时,您会建议我们做什么?我看到了一组选项: 我们将svn存储库移至git 1-on-1。我们不使用Office文件上的锁,而是执行git人们建议的操作,并以某种方式尝试更改工作流以对其进行修复。这可以在任何文档编辑的分支中进行,然后将其合并到审阅中。这种方法突破了例如包含项目管理信息的Excel工作表;他们很容易被团队成员编辑(我们鼓励这样做),但不受任何正式审查程序的约束 我们将git用于代码,将svn用于文档和项目管理。这样做的缺点是,某些更多具有设计意义的文档不会“靠近”其指定的代码,从而增加了人们忘记更新它们的机会。此外,每个人都必须使用和理解两组工具。就是说,对于非面向客户的设计文档来说,这可能是转向基于文本的文档工具(胶乳,降价,HTML等)的绝佳机会。 与1类似,但我们修改了一个git lock命令,该命令执行svn lock对我们所做的事情(适当地切换了只读标志并通过某种方式与服务器同步)。 我不赞成在DVCS中锁不起作用的说法,因为系统甚至在您完全脱机时也可以工作。SVN锁也可以被覆盖。他们是一种沟通机制。没有某种类型的网络连接,您将无法使计算机进行大量通信。 我们不能成为唯一一个对svn lock我们的工作流程适应性非常满意的商店,对吗? 有什么想法或提示吗? 我找到了/programming/119444/locking-binary-files-using-git-version-control-system,但是讨论的内容是技术性的;我正在寻找解决或避免两个团队成员同时编辑同一二进制文件的实际问题的方法。
16 git  svn  dvcs  excel  word 

2
带有大型公司通讯,配置管理和测试要求的Mercurial存储库结构
我还是另一个Subversion用户,他在分布式版本控制的Tao中苦苦地对其自身进行重新教育。 使用Subversion时,我非常喜欢次项目方法,并且与大多数以前的雇主一样,我们将构建存储库分支;标签和主干如下: branches-+ +-personal-+ | +-alice-+ | | +-shinyNewFeature | | +-AUTOMATED-+ | | +-shinyNewFeature | +-bob-+ | +-AUTOMATED-+ | +-bespokeCustomerProject +-project-+ +-shinyNewFeature +-fixStinkyBug tags-+ +-m20110401_releaseCandidate_0_1 +-m20110505_release_0_1 +-m20110602_milestone trunk 在实际的源代码树本身中,我们将使用(类似)以下结构: (src)-+ +-developmentAutomation-+ | +-testAutomation | +-deploymentAutomation | +-docGeneration | +-staticAnalysis | +-systemTest | +-performanceMeasurement | +-configurationManagement | +-utilities +-libraries-+ | …


6
什么是最基本,最简单的协作开发平台(PHP项目)?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 我需要使用codeigniter在相当普通的PHP应用程序上与4-5个程序员合作。我们在一个城市中有5个不同的地点,所有程序员的教育程度都不高,我假设他们中的大多数人从未使用过任何版本控制系统。 您是否可以推荐一个非常非常易于使用的平台来与像这样的项目进行协作?我所谈论的只是比共享保管箱文件夹更复杂的东西。

5
SQL Server的版本控制
我正在开始一个新项目,并使用SVN(带有Tortoise)作为我的版本控制系统。我想知道是否有可能使用同一系统来维护SQL Server数据库。 我想对我的表/函数/视图/ procs / triggers / etc进行版本控制。但不是我的数据,因为无论如何它们都将是测试数据。我不太确定该如何设置。我遇到了一些选择,但我想知道是否缺少任何我,是否有指导或其他帮助我开始使用它的东西。 我已经听说过Red Gate,但我正在寻找免费的东西(或至少非常便宜的东西)。我知道我总是可以自己写点东西,但我并不是真的想花时间在上面。 我遇到的一件事是放在一起称为ScriptDB4Svn的开源软件包。有人使用过吗?好吗?它可以做我需要做的事情吗,设置起来很简单吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.