如何为自己设置源代码控制系统?


23

我可以在办公室的台式机上进行编程,有时也可以在笔记本电脑上的其他房间在家中进行编程,甚至可以不在家里。我需要的是一个可以根据需要自动或按需将我的工作从一个同步到另一个的系统。

我没有家庭网络设置,尽管我想我可以做到,但是这可能是另一个委员会的问题。我已经考虑过某种可以将源代码保存在云中的系统,但是我对此并不足够了解。我需要一种免费或廉价的方式来执行此操作。

我在.NET(实际上是Windows Phone 7)中工作。


1
使用保管箱,只需将其安装在两台计算机上即可完成。免费(最多2GB)。对于您的情况,源代码管理位于最上方(IMHO)。
2011年

26
源代码控制永无止境(IMHO)!
孟格斯·庞

4
安装并启动Git并花费不到15分钟(取决于下载带宽)。
孟格斯·庞

2
安装并启动Dropbox并花费其运行时间不到3分钟(取决于下载带宽)。
2011年

4
DropBox是一个可怕的建议!它不是适当的版本控制系统,而是用于共享数据的。每次保存文件并实时同步到所有其他客户端时,都有一个非常讨厌的习惯,即上载和下载更改,这完全使您的计算机陷入瘫痪,无法进行所有这些不必要的网络通信,尤其是当您使用构建构件的东西时在DropBox中的同一目录中。学习和使用Git或等效的DVCS。

Answers:


39

最简单的方法是使用一种在线系统。签出GitHubBitBucket。有关Git或Mercurial的更多信息,请分别参阅Git ReferenceHg Init


也许,如果所有机器都可以连接互联网,但是还有其他用例。例如,我在USB闪存盘上保留了一些Subversion存储库,而在外部硬盘驱动器上保留了一些较大的存储库(不是源代码-照片和其他东西)。当我对过渡更加满意时,我也可能在USB闪存驱动器上拥有Mercurial存储库。一个原因-我仍然在很多事情上使用Windows XP,但是现在无论如何我都不会在互联网上允许它(笔记本电脑或台式机)。
Steve314

21
像Git和Mercurial这样的分布式版本控制系统的好处是,您可以在本地使用回购协议,然后在碰巧拥有一个“ Net连接”时就与某个中央服务器同步。听起来像是OP的理想解决方案。
米歇尔·蒂

@Brandon-也可用于外部驱动器上的主存储库,当一直连接时会很痛苦。
Steve314

2
记住,BitBucket具有免费的私有存储库(不同于GitHub),这可能使其成为OP的更好选择。
Kevin Yap

我之所以不建议在本地运行它,是因为他听起来并不满意,他说他需要远程访问它。但是显然,在本地运行并推送到云存储库是最好/最安全的方法。
彼得·罗威尔

7

您可以使用DVCS(如Git或Mercurial)创建本地存储库,然后安装Dropbox,然后将项目文件夹(当然包括存储库文件夹)放入dropbox文件夹。

只要您仅在同步之间的一个位置进行修改,Dropbox将处理同步,并且可以处理脱机情况。

BTW Dropbox默认情况下不会将您的文件公开,但是您仍然可以根据需要公开它们。

编辑

关于存储库完整性,以防万一Dropbox错过了同步一两个文件的麻烦,您可以在主PC的Dropbox文件夹创建一个主存储库,然后推送到该主存储库。因此,如果Dropbox文件夹中的本地存储库已损坏,只需从主PC还原即可。但是我还没有经历过存储库损坏。



本质上我是做什么的。我的台式机和笔记本电脑上的Mercurial存储库,Dropbox中的主要存储库,我可以从中推入和拉出。
David Thornley,

@David我反过来做,在PC中是主仓库,在Dropbox中是工作仓库,包括我正在处理的源代码文件。
Endy Tjahjono,

@Endy Tjahjono:听起来好像您在一台计算机上工作一样。我有时会使用台式机,有时会使用笔记本电脑,因此将主存储库放在其中之一上并没有真正的作用。
David Thornley

@David我的错,我应该在主PC上说“备份”回购。我的“主要”仓库是Dropbox文件夹中的工作仓库。我只是偶尔出于备份目的而推送到备份。
Endy Tjahjono,

6

以下是有关如何设置分布式VCS的一些快速说明。使用git或mercurial的好处是您无需设置服务器即可使其全部正常工作,因为存储库只是一个文件系统。您在代码旁边的计算机中拥有本地存储库(在git 中,项目路径中有一个.git文件夹,而在mercurial中,则有一个.hg文件夹)。

使用git

步骤1:下载并安装git。对于Windows,您可能需要使用TortoiseGit。一些设置说明在这里

步骤2:按照git社区手册为您的项目初始化本地存储库,然后提交到存储库。

步骤3:要将内容放置在github上的“云”上,可以按照本教程进行操作

使用Mercurial

步骤1:下载并安装mercurial。对于Windows,您可能需要使用TortoiseHg

步骤2:按照快速入门指南为您的项目创建存储库并提交到存储库。

第3步要将内容放在bitbucket的“云”上,可以按照本教程进行操作

如果您使用的是.NET,则可能需要使用Mercurial,因为在撰写本文时,Windows会更好)提供更好的支持。


2

正如@ peter-rowell和其他人正确说的那样,最简单的方法是使用DVCS中的任何一种(如Git)和相应的在线系统(如Github或Unfuddle)。我个人使用Git和Unfuddle。

既然您已经提到在家中连接互联网也不是问题,那么就有一个新的在线IDE运行在浏览器中并存在于云中。我以前不知道有什么可用的东西,但这看起来非常有趣和酷。虽然,我没有使用太多,但是很酷。


Unfuddle是一项很棒的服务。基本上,它只是Redmine的副本,带有一些不错的调整。
Keyo

2

几乎所有DVCS都会有所帮助。

最受欢迎的是Git,Mercurial和其他一些。但我真的很喜欢化石。它是一个(小的!)可执行文件,易于移植,自包含,具有多个平台,并且包括一个Wiki,基于Web的GUI,票务系统,文档处理程序等。


1
Bitbucket是提供Mercurial托管的服务。
塔玛斯·塞莱伊(TamásSzelei)2011年

谢谢。我知道; 但名字在我脑海中纠结
哈维尔

1

我建议的选择是Kiln。它由与FogBugz和Stack Exchange完全相同的人制造。因此,它应该相当不错,而且我相信最多可供3个用户免费使用。规模就像FogBugz一样,两者可以集成在一起,因此您也可以跟踪错误和功能。

就像乔尔(Joel)在他的一篇博客文章中所说的那样,即使对于一个孤独的开发人员而言,错误跟踪和源代码控制始终是一个加号。


好吧,它可能对3个用户免费,但现在每个用户每月25美元。尽管如此,似乎还是很酷的产品。
Cyber​​herbalist 2012年

1

如果不是您的代码隐私问题,那么Google Code可能是一个可行的解决方案。它负责托管部分,并且它是免费的并且相当容易设置。它支持Subversion,Mercurial和Git,它们都具有Windows客户端。它还与Google ID集成在一起,因此您可以轻松地为项目添加贡献者。我在那里使用Mercurial托管我的业余项目。我的家庭和办公计算机上都安装了TortoiseHg客户端,因此我可以在休息期间处理我的项目。


真好!感谢您提及这一点-我以前从未听说过Google Code。
Cyber​​herbalist 2012年

0

这取决于您对设置服务器的了解以及您愿意投资的时间。

我个人从托管商那里租了一个小型虚拟服务器,并安装了一个Apache Web服务器和一个集成的Subversion存储库(我现在将其转换为git)。设置实际上并不多,一旦启动并运行,您就不必再为它担心。这种设置的优点是,您不仅可以设置版本控制存储库,还可以设置无论您在哪里都可以访问的其他类型的东西(例如,我已经安装了WIKI和问题跟踪器)。

如果这对您来说是过多的开销,则可以始终使用已经建议的在线系统(例如GitHub)。


0

最简单的方法可能是与git provider一起使用,github可以为私人帐户付费。

但是不要忘了svn,它简单易用。您可以在可以访问的位置安装svn服务器,可能正在工作。(并且像Visual svn server这样的项目使在Windows上的确很容易。)作为客户端,您可以使用Visual Studio插件或tortoisesvn。

您唯一需要记住的是,在切换计算机时需要提交和更新。


我认为SVN在这里不是正确的答案。我发现设置Mercurial比设置SVN更容易,并且它是一个比SVN更好的系统。没有直接连接到中央存储库的情况下,SVN是没有用的,并且OP具有两台显然没有直接链接的计算机。
大卫·桑利

我不确定svn是否比分布式替代品容易。但是由于他不能一直访问服务器,因此在分支时必须纪律。但是无论如何,一个男人表演很少这样做。而且,当您更换计算机时,需要提交,所以我同意这不是最佳选择。但这是另一种选择。在开始使用git之前,我实际上是这样工作的。(但是使用git更容易出错)。
约翰

我的假设是他上班时要随身携带笔记本电脑,否则安装起来并不容易,David是正确的。
约翰

设置git或Hg存储库(git init)所花费的时间为几秒钟。使用Subversion,首先需要一台服务器,这比仅git/hg init在目录中运行要困难得多。我不耐烦,很懒,Git鼓励我使用SCM,因为它(合并,初始化,提交)是如此的快捷和轻松。
Keyo

0

我使用Beanstalk。作为个人SVN服务器,它对我来说非常有用。他们也有Git托管,但我还没有尝试过。他们首先有一个免费帐户,然后您可以根据需要毕业到付费帐户。


-2

投寄箱

所有其他解决方案都满足您的需求:

只需在两台计算机上安装Dropbox

完整的源代码控制很好,但是在您的情况下,不需要IMHO

这是最简单的方法->您最终会在任意数量的计算机上获得自动同步的文件夹。


1
您可以将Git与Dropbox一起使用。见stackoverflow.com/questions/1960799/...
Mongus傍

4
使用源代码控制并没有夸大其词,尤其是当Git和HG如此容易设置时。我认为他是唯一的开发人员并不重要,如果他正在编写生产代码,则需要源代码控制。
richeym 2011年

是的,您可能是正确的。我只是认为对于单个开发人员来说,这完全是不必要的和OTT,但这是我的观点。
2011年

git initgit add .git commit -m "bla"是所有你需要知道犯一些代码。不难,您可以恢复原状。当然,收益对于团队而言更为重要,但是我希望能够重新设置时间点很重要。能够分支和隐藏也使我更有生产力。
Keyo

我听到您的说法,在下拉框的实时同步中,它确实具有基本的回滚功能。是的,与全面的源代码控制相比,它什么都没有,但是它几乎是“
一发不可收拾的
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.