Questions tagged «version-control»

版本控制是对文档,程序和其他存储为计算机文件的信息的更改的管理。使用此标记可以标记有关版本控制,VCS比较的用法和适用性的一般问题。对于特定于每个特定VCS的大多数命令和技术,都有特定的标签,应该优先使用。


11
颠覆应该忽略哪些Visual Studio文件以最大程度地减少冲突?
我支持许多使用Subversion进行版本控制的.Net开发人员,但我们遇到了许多问题,这些问题似乎与Visual Studio用于管理项目,进行调试等的其他文件有关。具体来说,似乎这些文件正在引起冲突,因为它们已经在存储库中。我知道如何解决它们,以及如何处理它们,但是我需要知道什么是“它们”。 那么,Subversion可以忽略的文件/目录是什么,为什么它们可以被忽略?(又名那些文件做什么?) 这是一个大型的,无组织的ASP.Net网站,并且通过部署该网站。svn更新,因此IIS在文件更改时需要动态编译(我认为就是这样)的站点所需的文件需要保留在存储库中。

3
避免需要将NuGet.exe添加到源代码管理
一些背景信息: 我已经按照使用NuGet的教程进行操作,但是没有成功提交软件包。围绕工作后这个问题的NuGet通过手动添加<RestorePackages>和<Import ...>对nuget.targets文件事情工作。 但是,一旦使用Mercurial克隆了存储库,构建时就会出现以下错误: 无法找到'C:\ ... \ Visual Studio 2010 \ Projects \ MyProject \ .nuget \ nuget.exe' 这是有道理的,因为我的忽略模式使我无法检入exe文件。从这个相关的SO问题中,我推断出将此文件包含在版本控制中并不少见(或者是?),但实际上,如果可以帮助,我宁愿不要将NuGet.exe提交到版本控制中。 问题:是否有方便的方法来防止需要检查NuGet.exe? 我尝试了一些Google-fu,略过了文档,还弄不着NuGet.targets文件,到目前为止还算运气。如果我可以动态地指向构建解决方案的特定环境的NuGet.exe,那似乎是可取的。 我知道我可以只添加exe文件,但是我更想知道是否还有其他方法可以解决这个问题,或者知道为什么没有可行的替代方法。 更新: nuget.targets文件包含一些相关的xml: <!-- only (relevant) parts of the xml shown below --> <DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe> ... <UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> <Task> <Code Type="Fragment" Language="cs"> <![CDATA[ …

17
分支策略[已关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我工作的公司开始对他们当前的分支模型有疑问,我想知道社区接触到哪些不同类型的分支策略? 有针对不同情况的好方法吗?贵公司使用什么?它们的优缺点是什么?

4
在Mac OSX上,TortoiseSVN有什么等效功能?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案能得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在使用运行Mac OS X 10.5的MacBook Pro。我是这个开发环境的新手,以前在Windows上工作过。 我发现Mac PC上没有TortoiseSVN,我想知道Mac是否有其他替代工具(更好的免费和易用的GUI工具)吗?

6
提交和推送单个文件同时不进行其他修改的最简单方法是什么?
我对Mercurial来说还比较陌生,我的团队正在尝试将其作为Subversion的替代产品。 如何提交单个文件并将其推送到另一个存储库,同时不提交工作目录中的其他修改(或至少不推送到另一个存储库)? 对于我们而言,数据库迁移会发生这种情况。我们希望将迁移提交给源代码管理,以便DBA可以在进行代码修改以进行该数据库迁移时查看和编辑它。变更尚未准备就绪,因此我们不想将所有变更都推出。 在Subversion中,我只是要做: svn add my_migration.sql # commit only the migration, but not the other files I'm working on svn commit -m "migration notes" my_mygration.sql 并继续在本地工作。 这不适用于Mercury,因为当我将其推送到另一个存储库时,如果有未删除的更改,它希望我将其删除,合并并提交合并到存储库。合并后提交不允许您忽略文件,因此会强制您提交本地存储库中的所有内容。 我能想到的最简单的方法是将文件提交到本地存储库,克隆本地存储库,从实际存储库中获取任何新更改,合并并提交合并,然后将我的更改推出。 hg add my_migration.sql hg commit -m "migration notes" my_migration.sql cd .. hg clone project project-clone cd project-clone hg fetch http://hg/project hg …

9
Visual Studio的源代码控制集成如何与Perforce一起使用?
我们正在使用Perforce和Visual Studio。每当我们创建分支时,除非使用“从源代码管理中打开”,否则某些项目将不会绑定到源代码控制,但是其他项目无论如何都会起作用。从我的调查中,我知道其中涉及的一些事情: 在我们的.csproj文件中,有以下设置: <SccProjectName> <SccLocalPath> <SccAuxPath> <SccProvider> 有时它们都设置为“ SAK”,有时则没有。如果它们说“ SAK”,则似乎更有可能起作用。 在我们的.sln文件中,有许多项目的设置: SccLocalPath# SccProjectFilePathRelativizedFromConnection# SccProjectUniqueName# (#是标识每个项目的数字。)SccLocalPath是相对于解决方案文件的路径。通常是“。”,有时是项目所在的文件夹,有时是“ ..”或“ .. \ ..”,并且指向它上方的文件夹似乎很不好。解决方案文件夹。相对的是从该文件夹到项目文件的路径。如果SccLocalPath指向项目的文件夹,它将完全丢失。如果SccLocalPath中包含“ ..”,则此路径可能包含分支之间的文件夹名称不同,我认为这会引起问题。 因此,最后我想知道的细节是: 当您执行“更改源代码管理”并绑定项目时会发生什么?Visual Studio如何决定要在项目和解决方案文件中放入什么? 当您执行“从源代码管理中打开”时会发生什么? SccLocalPath和SccProjectFilePathRelativizedFromConnection引用的“连接”文件夹是什么?Visual Studio / Perforce如何选择它? 有没有建议的方法,即使您创建解决方案的新分支,也可以使源代码控制绑定继续工作? 2012年6月新增: 我不再使用Perforce,因此无法担保,但是请在下面查看KCD的答案。显然,正在开发一个新的P4 VS插件。希望它应该清除所有这些混乱!

7
TF30063:您无权访问Collection。Nuget和Tfs冲突
最新评论 我相信使用Nuget时会出现我的问题,但是,如果由于TF30063错误而正在阅读。看看我提供并接受的答案。 原始帖子 当我尝试签出时,我收到此错误消息。即使是几分钟前,Visual Studio的同一实例也允许我检查其他内容以进行编辑,但这种情况是随机发生的,并且可能会发生。 当前的解决方法是重新打开VS2010。 在我的本地开发机上使用W7x64,vs2010 Ultimate和TF2010和sql2008。我不属于域。我是这台计算机的管理员。 追加2011-08-09 当问题发生时,我在文件下“关闭解决方案”。然后重新打开解决方案。然后,我得到一个uid / pwd框。我将我的管理uid / pwd放入其中,然后收到进一步的错误消息。同样,关闭vs2010并重新打开可以解决此问题。 附加:2011-08-30 我相信这与nuget有关。我已经提供了答案,并且到目前为止,几个月之后我还没有出现TFS错误。给定我正在执行的操作类型,该错误应该发生在哪里,该错误与导致失败的方案相同。

7
Mathematica笔记本的版本控制
Mathematica笔记本当然是纯文本文件-可以合理地预期它们应该与版本控制系统配合使用(在我的情况下为git,尽管我怀疑特定的系统很重要)。但是事实是,任何.nb文件都充满了缓存信息,时间戳和其他各种元数据。大量的。 这意味着可以进行有限的版本控制-提交和回滚可以正常工作。但是,合并是一场灾难。Mathematica不会打开其中带有合并标记的文件,并且文本编辑器无法处理.nb文件。 有人有幸将笔记本置于版本控制之下吗?怎么样?

7
Git 1.7.0中的稀疏结帐?
借助Git 1.7.0中新的稀疏签出功能,是否有可能像在SVN中那样仅获取子目录的内容?我找到了这个示例,但是它保留了完整的目录结构。想象一下,我只想要“ perl”目录的内容,而没有一个名为“ perl”的实际目录。 -编辑- 例: 我的git储存库包含以下路径 repo/.git/ repo/perl/ repo/perl/script1.pl repo/perl/script2.pl repo/images/ repo/images/image1.jpg repo/images/image2.jpg repo/doc/ repo/doc/readme.txt repo/doc/help.txt 我想要的是能够从上述存储库中产生此布局: repo/.git/ repo/script1.pl repo/script2.pl 但是,使用当前的稀疏签出功能,似乎只能 repo/.git/ repo/perl/script1.pl repo/perl/script2.pl 这不是我想要的。

3
Git的打包文件是增量文件,而不是快照?
Git与大多数其他版本控制系统之间的主要区别之一是,其他版本控制系统倾向于将提交存储为一系列增量-一个提交与下一个提交之间的变更集。这似乎是合乎逻辑的,因为它是存储有关提交的尽可能少的信息。但是提交历史记录越长,用于比较修订范围的计算就越多。 相比之下,Git在每个修订版中存储整个项目的完整快照。每次提交不会使仓库的大小显着增加的原因是项目中的每个文件都作为文件存储在Git子目录中,并以其内容的哈希命名。因此,如果内容未更改,则哈希值也未更改,并且提交仅指向同一文件。还有其他优化。 所有这些对我来说都是有意义的,直到我偶然发现了有关pack文件的信息,Git定期将数据放入其中以节省空间: 为了节省空间,Git利用了packfile。这是一种格式,其中Git仅将更改过的部分保存在第二个文件中,并带有指向该文件的指针。 这基本上不是回到存储增量吗?如果没有,那有什么不同?如何避免Git遭受其他版本控制系统所遇到的相同问题? 例如,Subversion使用增量,而回滚50个版本意味着撤消50个差异,而使用Git,您只需获取适当的快照即可。除非git也将50个差异存储在packfile中...否则是否有某种机制说“在少量增量之后,我们将存储一个新快照”,这样我们才不会堆积太大的变更集?Git还能如何避免三角洲的弊端?


15
如何在svn和/或git中“取消版本”文件
它一直在我身上发生。我不小心对文件进行了版本控制,但我不想对其进行版本控制(例如,特定于开发人员/机器的配置文件)。 如果提交此文件,我将弄乱所有其他开发人员机器上的路径-他们将不满意。 如果我确实从版本管理中删除了文件,它将从其他开发人员的机器上删除-他们将不满意。 如果我选择从不提交文件,那么我总是有一个“脏”的结帐-我很不高兴。 是一种从版本控制“取消版本”文件的干净方法,这将导致没有人不满意吗? 编辑:尝试澄清一下:我已经将文件提交到存储库,并且只想从版本控制中删除它-我特别不希望从进行结帐的每个人中实际删除它。我最初希望它被忽略。 答:如果我可以接受第二个答案,那就是this。它回答了我关于git的问题-可接受的答案是关于svn。

21
源代码管理中的存储过程/数据库模式
你们是否跟踪所选源代码控制系统中的存储过程和数据库架构? 进行更改时(添加表,更新存储的proc,如何将更改添加到源代码管理中? 我们在工作中使用SQL Server,并且我已经开始使用darcs进行版本控制,但是我对通用策略以及任何方便的工具感到好奇。 编辑:哇,谢谢大家提出的所有宝贵建议!希望我可以选择多个“接受的答案”!

5
具有历史记录的存储库之间的SVN复制
我的一个队友问是否可以在保持历史记录的同时从一个SVN导出到另一个。 在我看来,这似乎是一个普遍的要求。 因此:是否可以在所有历史记录之间迁移SVN存储库? 重要的是要注意,我们在Source上没有svnadmin访问,但在Destination上却具有svnadmin访问。 如果只是归结为从源中签出每个修订,然后将其签入到目的地,只要有一个自动化的流程,我们就可以了。 编辑:我忘了提到目标存储库在Windows上。

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.