2GB USB驱动器上的版本控制
对于学校的工作,我做了很多切换计算机的工作(从实验室到笔记本电脑再到图书馆)。我想将这段代码置于某种版本控制之下。当然,问题在于我不能总是在使用的计算机上安装其他软件。我可以用拇指驱动器保持某种版本控制系统吗?我有一个2GB的驱动器来安装此驱动器,但如有必要,我可以安装更大的驱动器。
我正在做的项目并不是特别重要。
编辑:这需要在Windows下工作。
编辑II:集市最终是我选择的。如果我们选择TortoiseBzr,那就更好了。
解决方案
最好的答案是某种DVCS(流行的是Git,Mercurial,Darcs,Bazaar ...)。原因是我们在使用的任何计算机上都拥有整个存储库的完整副本。我没有亲自使用过这些系统,因此其他人将最好地推荐体积小,跨平台兼容性好的DVCS。
我会用git。 Git仓库很小,不需要守护进程。我们可能可以在闪存驱动器上安装cygwin或者msysgit。
编辑:这是在闪存驱动器上安装cygwin的一些说明
我们可以使用Portable Python和Bazaar(Bazaar是Python应用程序)。我喜欢将Bazaar用于自己的个人项目,因为它非常简单。另外,它可以移植,因为Python可以移植。我们只需要在可移植Python安装中安装它的依赖项即可。
我们可以将Subversion二进制文件放在那里,它们只有16个兆位,因此我们也将有足够的空间容纳某些存储库。我们可以从命令行使用官方二进制文件,也可以将图形工具(例如TortoiseSVN)指向存储库目录。如果我们感觉很花哨,则可以安装驱动器以自动运行SVNSERVE应用程序,从而在插入驱动器的那一刻使任何计算机成为轻量级的Subversion服务器。
我在这里找到了有关此过程的一些说明。
我用Git做到这一点。只需创建目录的Git存储库:
git-init git add . git commit -m "Done"
将木棍插入cd到其目录(我有一个大的ext2文件,我用-o循环挂载了该文件),然后执行以下操作:
git-clone --bare /path/to/my/dir
然后,我将摇杆拿到其他计算机(家庭等)上。我可以直接在棍子上工作,或者再次克隆。转到硬盘上的某个目录,然后:
git-clone /path/to/stick/repos
完成更改后,我会进行" git push"操作以恢复工作状态,而当我恢复工作时,将再次进行" git push"操作以将所做的更改从工作区移至工作计算机。设置好之后,我们可以使用" git pull"仅获取更改(不再需要克隆,仅是第一次),并使用" git push"以另一种方式推送更改。
这样做的好处是,我们可以同时使用" git log"查看所有更改,甚至可以在两个位置同时更改一些无关的工作时保持同步。
如果我们不喜欢命令行,则可以使用gitk和git-gui等图形工具。
颠覆有点工作。看到线程
就个人而言,我更喜欢将所有内容保留在一台计算机上,并将远程桌面保留在其中。
为此,Darcs很棒。
- 我不能担保其他平台,但是在Windows上,它只是一个可以保存在驱动器上的可执行文件。
- 最重要的是,它的交互式命令行界面非常出色,并且很快就变得直观(我现在真的很想念任何缺少交互式提交的VCS中的交互式提交)-我们也不需要在正常工作流程中记住很多命令。这是我在git上用于个人项目的主要原因。
配置:
darcs init darcs add -r * darcs record -am "Initial commit"
在实验室机器上创建存储库:
darcs get E:\path\to\repos
检查我们所做的更改:
darcs whatsnew # Show all changed hunks of code darcs whatsnew -ls # List all modified & new files
根据更改以交互方式创建新补丁:
darcs record
以交互方式将修补程序推送到驱动器上的存储库:
darcs push
众所周知,对于大型项目而言,这很慢,但是对于我使用过的中小型个人项目,我从未遇到任何性能问题。
由于不需要安装,因此即使忘记了驱动器,我们甚至可以省去驱动器,而只是从网络上获取darcs二进制文件,因此我从要保留在Web空间中的镜像中提取了要处理的存储库副本,然后创建补丁并将修补程序作为文件发送给我:
darcs get http://example.com/repos/forum/ # Make changes and record patches darcs send -o C:\changes.patch
我在我的拇指驱动器上使用了subversion,官方二进制文件将立即在该驱动器上工作。这个技巧的问题是我们需要访问一个命令行才能使它工作或者能够运行批处理文件。当然,我将拇指驱动器上的文件同步到要付费的服务器上。如果我们不想在网络上获得托管空间,则始终可以将存储库托管在桌面上(使用file:///协议)。
我会因为说出这个答案而被私刑,但是它在Windows:RCS下有效。
我们只需使用代码在每个目录中创建一个" RCS"目录。当需要检查时,请使用ci -u $ FILE。 (二进制文件还要求我们在第一次签入之前运行rcs -i -kb $ FILE
。)
如果我们希望"升级"到这一天(并从那里升级到其他提到的其他VCS系统),则在" RCS"目录中有一堆与CVS兼容的,v
文件。 :-)
bitnami堆栈颠覆,易于安装。
我们也可以尝试通过Portableapps.com和Subversion安装xampp。
只是为了在Stick上添加一个额外的Subversion资源。我刚刚在我的4GB USB驱动器上进行了设置,非常简单且轻松。
以为我现在很想尝试集市。
更新:我已经在USB驱动器上设置了PortablePython,很简单,但是在那里有集市...
我放弃了,一个接一个地依赖,并且随着svn的工作。
如果有人知道一个简单的便携式安装程序,我将非常感激。
在我看来,闪存和版本控制似乎不是一个好主意。恐怕内存很快就会用完,特别是如果我们大量使用各种版本控制操作,这些操作会进行许多小磁盘操作(合并,来回往返等),则尤其如此。
至少,要确保我们尽可能多地人工备份存储库,以防驱动器出现故障。
我推荐化石http://www.fossil-scm.org/
包括
- 命令行
- 数码相机
- 跨平台(易于编译)
- "自动同步"命令使同步到备份的基本任务变得容易。
- 备份服务器配置是轻而易举的事。
- 易于学习/使用
- 非常有帮助的社区
- 包含Wiki和Bugtracker的Web UI。
- 3.5Mb,单个可执行文件
- 一个sqlite数据库作为存储库