如何在双引导Macintosh上使用Subversion和Time Machine?

问题描述:

使用Eclipse,我正在开发和维护Java桌面应用程序。我的Mac用户的OS X版本从10.6到10.9。我的机器有两个磁盘分区,可以启动或者OS X 10.6上运行苹果的Java 6,或OS X 10.8上运行Oracle的Java 7(需要注意的是10.6无法运行Java 7; 10.8不能运行Java 6)我上有一个外部磁盘Time Machine备份了两个OS X分区。如何在双引导Macintosh上使用Subversion和Time Machine?

我想保持一个应用程序的两个版本,每一个Java版本。大多数源代码在不同版本上都是相同在处理特定版本时,我从相应的分区启动。

我正在寻找使用Subversion的源代码版本控制的策略。我可以把仓库在任OS X分区(均可见不管哪个是当前启动分区),但我相信它会被时间机器备份只有当我从同一分区引导。我可以将存储库放在外部磁盘上,但是它不会被Time Machine备份。我住在没有宽带互联网的农村地区,因此任何远程或“云”存储库都无法使用。

我可以看到潜在的问题,例如,我已经启动到10.6,编辑了一些文件,然后想要重新启动到10.8进行一些回归测试。我不想在每次重新启动之前检查所有文件,然后再检查出来。

我特别喜欢Time Machine的备份的方便性和其对我的机器恢复到已知状态的能力。不得不采取单独的策略来备份Subversion版本库不太理想。

我从来没有使用混帐,但会考虑。

我推荐你使用git - 集中式vcs根本不适合你的环境 - 哪个磁盘是中心环境?我不认为是。使用DVC系统,没有*回购站,这正是您计划工作的方式。

使用git,每个克隆都是存储库*的完整副本。时间机器并不需要介入。

  • 只要你把所有的分支/标签

以下是我会建议你躺在出来...

初始化你的git仓库一个磁盘使用默认的分支上( 'trunk')是每个版本的共同代码。

cd <your project> 
git init 

为您需要支持的每个java版本创建一个分支。

git branch <name> 

将repo克隆到另一个磁盘,并将其设置为彼此的远程。

git clone <path> 
git remote add <name> <path to other box> 

现在,您只需查看要处理的工作分支,并确保在提交之后进行推送。

我肯定已经错过了一个git命令或两个以上我片断,只是只要原则是明确

有人指出,我认为时间机器可以被配置为在任何执行备份以及内部和外部磁盘上的所有卷,而不仅仅是引导卷。这使得我的问题没有意义:我可以将存储库放在任何地方,然后确保Time Machine在每个操作系统卷上都进行了相应的配置。