Tag: svn

是否使用中央存储库违背GIT的目的?

如果你的企业环境中有很多人在某个特定的应用程序上工作,那么这个分布式版本控制系统是否有官方的中央存储库呢? 有时候,我很难理解分布式版本控制系统的概念,比如企业环境中的GIT 。 如果您没有中央存储库,那么是不是PITA来确定谁拥有最新的更新版本,谁拥有需要抓取的特性或错误修复function等等。 它是否击败了GIT的目的,以类似于SVN的方式使用它,每个人都推送一个中央存储库? 每当我想到做到这一点,我就觉得我错过了一切。 有人能教导我吗?

Subversion如何在存储库中存储文件?

我读了颠覆书,我很清楚,颠覆并不存储单个文件,但只有增量,以最大限度地减less磁盘空间。 Subversion也对二进制文件也一样(这曾经是CVS的一个巨大弱点)。 但是我不明白确切的机制。 当我提交一个文件会发生什么? Subversion只存储diff(并且已经有旧版本) Subversion删除以前的版本,保存新的文件,并创build一个反向差异,以便在需要时重新创build旧版本。 还有一些我没有想到的东西。 第一个案子似乎是最合乎逻辑的。 然而这又提出了另一个问题。 如果我在Subversion版本库中有一个1000提交的文件和一个新的开发者签出一个干净的副本,那么Subversion将不得不提取原始版本(初始导入),并在返回结果之前应用1000个差异。 它是否正确? 有没有对最新版本的文件进行某种caching? 基本上我可以在哪里find关于svn仓库内部的信息? 更新:显然,颠覆的后端在这方面扮演着重要的angular色。 当时或写FSFS使用选项1,而BDB使用选项2.谢谢msemack!

有没有一个Subversion的用户指南Git?

我是Git世界的新用户。 我曾经使用Subversion(使用TortoiseSVN),这很容易。 我想尝试Git,但是我很困惑的条款。 有什么文档/指南可以解释我如何使用Git? 例如,在Subversion中,我使用checkout; 在Git应该使用哪个命令? 任何关于Git的好书我都可以使用?

Perforce责备

在命令行上是否有相当于svn的责任,Perforce? p4 annotate不显示用户名 – 只有变更集编号(没有祖先历史!)。 我现在必须通过祖先跟踪代码,并与文件日志进行比较,而且必须有一个更简单的方法 – 可能是F / OSS实用程序?

TortoiseSVN:什么是头部修正

我是学习如何使用SVN的VSS用户,我select了TortoiseSVN作为我的平台。 有人能告诉我“HEAD修订”这个词是什么意思?

如果我添加一个符号链接到颠覆会发生什么?

我想添加一个符号链接到颠覆,当我做一个结帐,它所做的是添加相同的符号链接到我的结帐,但我害怕添加它,如果这不是什么情况发生。

如何将所有新文件添加到SVN

我正在使用从CLI生成大量文件的ORM。 有没有一种简单的方法来运行svn add目录中的所有文件显示为? 当我运行svn status ? 编辑这些文件存在于目录树中,因此为一个目录添加*将不起作用。

什么使DVCS合并变得容易?

我在软件Joel上读到: 使用分布式版本控制,分布式部分实际上不是最有趣的部分。 有趣的部分是这些系统根据变化而不是版本来思考。 和HgInit : 当我们需要合并的时候,Subversion会试着去查看这两个版本,我的修改过的代码和你修改过的代码,然后试图猜测如何把它们合并成一个大的邪恶混乱。 它通常会失败,产生页面和页面的“合并冲突”,这并不是真正的冲突,只是Subversion未能弄清楚我们做了什么的地方。 相比之下,当我们在Mercurial单独工作时,Mercurial正在忙于保持一系列的变化。 所以,当我们想要将我们的代码合并在一起时,Mercurial实际上拥有更多的信息:它知道我们每个人都改变了什么,可以重新应用这些改变,而不仅仅是看最后的产品,并试图猜测如何把它一起。 通过查看SVN的存储库文件夹,我有一种印象,Subversion将每个修订版保持为变更集 。 而据我所知,Hg正在使用变更集和快照,而Git纯粹是使用快照来存储数据。 如果我的假设是正确的,那么肯定还有其他方法可以使DVCS中的合并变得容易。 那些是什么? *更新: 我对技术视angular更感兴趣,但非技术视angular的答案是可以接受的 更正: Git的概念模型完全基于快照。 快照可以作为其他快照的差异存储,差异仅仅是为了优化存储。 – RafałDowgird的评论 从非技术angular度来看: 这仅仅是文化上的问题:如果合并困难,DVCS根本无法工作,所以DVCS开发者投入大量的时间和精力来使合并变得容易。 CVCS用户OTOH被用于糟糕的合并,所以开发人员没有动力使其工作。 (为什么当你的用户给你同样好的东西给别人一些废话时,让事情变好?) … 回顾一下:DVCS的整个目标是拥有许多分散的存储库,并不断地将变化合并到一起。 如果没有合并,DVCS根本就没用。 然而,CVCS仍然可以在糟糕的合并下生存下来,特别是如果供应商能够限制用户避免分支。 – JörgW Mittag的回答 从技术angular度来看: 录制真正的历史DAG确实有帮助! 我认为主要的区别在于CVCS并不总是把一个合并作为一个变更集与几个父母一起logging,丢失了一些信息。 – tonfa的评论 因为合并跟踪 ,以及每个修订版都知道其父母的更基本的事实。 当每次修改(每个提交),包括合并提交,都知道它的父项(对于合并提交,意味着拥有/记住多个父项,即合并跟踪),可以重build修订版本的图(DAG = Direct Acyclic Graph)历史。 如果你知道修订图,你可以find你想要合并的提交的共同祖先。 当你的DVCS知道如何find共同的祖先时 ,你不需要提供它作为参数,例如在CVS中。 。 请注意,可能有两个(或更多)提交的不止一个共同的祖先。 Git利用所谓的“recursion”合并策略,将合并基础(共同祖先)合并,直到剩下一个虚拟/有效的共同祖先(在一些简化中),并且可以做简单的三向合并。 – JakubNarębski的回答 检查一下在Git中如何和/或为什么合并比SVN更好?

服务器/数据库configuration文件,包括密码,应该存储在源代码pipe理中吗?

我期待听到一些最佳做法… 假设一个Web应用程序与几个不同的生产服务器(数据库等)交互…应该包含数据库密码的configuration文件存储在源代码pipe理(例如,git,svn)? 如果没有,跟踪应用程序需要访问的服务器数据库(或其他相关)密码的最佳方式是什么? 编辑:添加一个赏金,以鼓励更多的讨论,并听取更多的人认为最好的做法。

如何将SVN diff应用于Git?

我有两个存储库中的项目。 一个在SVN下,一个在Git下。 每当我改变SVN的东西,我想要做同样的事情到Git仓库。 假设我对SVN版本库进行了更改,生成了修订版本125.如何将这些相同的更改应用于我的Git存储库(假设我的Git存储库已更新至版本124)。 谢谢。