Tag: 版本控制

Gitosis替代?

有没有替代gitosis更容易使用? 我目前在我的实验室的Ubuntu服务器上运行gitosis。 我们经常添加新用户和回购。 我发现gitosis.conf语法是非直观的,如果我犯了一个小错误,整个gitosis系统都会失败,请参阅SO上的这个问题。 当gitosis失败时,它也会杀死对包含gitosis.conf的git仓库的访问…去图…必须有更好的方法。 我曾经想过私人的GitHub帐户,但还有什么我可以在本地托pipe?

git推送到远程分支

伙计们, 我已经克隆了一个回购。 我创build了一个分支,通过发出以下命令来处理一个function: git branch fix78 然后我通过这个分支去工作 git checkout fix78 我继续向这个地方分公司作出承诺。 现在我想把它推到回购,因此我发出了以下命令: git push origin master:fix78 我从networking浏览器中查看了repo,发现在repo上创build了一个名为fix78的新分支。 但是它没有我提交的任何提交。 我在这里做错了什么? 这是我想要实现的: 有一个回购(主人(在SVN行话树干)),现在当我在一个function上工作,我想创build一个本地分支,然后我也想检查这个分支到回购(让其他团队成员可以看到我在做什么),然后我希望我的本地分支与我创build的远程分支同步。 任何帮助/反馈将是完全可怕的。 谢谢。

TortoiseSVN:什么是头部修正

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

Team Foundation服务器源代码pipe理结构

我一直在努力为新一年的Team Foundation Server部署标准化源代码pipe理结构。 我已经开始使用CodePlex上提供的Microsoft Team Foundation Server分支指导文档。 我希望得到一些反馈意见,并回答关于这个build议结构的一些具体问题。 当谈到在TFS中构build源代码控制时,我了解到有太多的“标准”可供select,没有真正的标准。 首先,我将概述和描述决定和用法。 $/ {Team Project}/ {Subproject}/ Development/ Trunk/ Source/ Tests/ Sandcastle/ TeamBuildTypes/ {Build Name}/ Branches/ {Branch Name}/ Source/ Tests/ Sandcastle/ TeamBuildTypes/ {Build Name}/ Integration/ Source/ Tests/ Sandcastle/ TeamBuildTypes/ {Build Name}/ Production/ Releases/ {Release Version}/ Source/ Tests/ Sandcastle/ TeamBuildTypes/ {Build Name}/ Branches/ {Branch Name}/ Source/ Tests/ Sandcastle/ TeamBuildTypes/ […]

什么使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)? 如果没有,跟踪应用程序需要访问的服务器数据库(或其他相关)密码的最佳方式是什么? 编辑:添加一个赏金,以鼓励更多的讨论,并听取更多的人认为最好的做法。

哪个NetBeans项目文件应该进入源代码控制?

我们通常将Eclipse用于特定的Java项目,但是最近我将项目导入NetBeans以使用其对话框构buildfunction。 由于我可能会回到这个,所以我想将NetBeans项目文件存储到版本控制中。 但是,我不想提交“我的”与“项目”的文件,即我自己的设置与其他用户冲突的文件。 NetBeans在顶级项目区域中创build了以下结构: nbbuild nb-build.xml nbproject <various files> configs private 显然, nbbuild是nbbuild输出,所以不会进入nbbuild nb-build.xml文件看起来很可能,大部分的nbproject 。 但是, nbproject/privatebuild议它是“我的”。 偷看“configuration”,我不清楚,如果这是我的或项目… 任何人都有一些准则?

如何将SVN diff应用于Git?

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

Mercurial:如何忽略对跟踪文件的更改

我有我的项目中的数据库设置的文件,我已经设置了一些默认值。 该文件由Mercurial跟踪和签入。由于这个文件将被编辑不同的值不同的开发机器,有没有一种方法,我可以告诉Mercurial忽略此文件的新变化? 我试图将文件添加到.hgignore文件,但由于文件被跟踪,它不会被忽略。 这在其他情况下是好的,但是我想知道在这里我能做些什么吗?

KDIFF合并中的A,B和C是什么?

为什么在我的代码和其他人之间合并时,我有三个select? 不应该只有我的代码,对方的代码和下面的输出? KDIFF的文档没有帮助我理解。