使用Eclipse,我正在开发和维护Java桌面应用程序。我的Mac用户的OS X版本从10.6到10.9。我的开发机器有两个磁盘分区,可以运行运行Apple Java 6的OS X 10.6或运行Oracle Java 7的OS X 10.8。(注意,10.6不能运行Java 7; 10.8无法运行Java 6.)我有一个外部磁盘哪台Time Machine备份了两个OS X分区。
我想维护一个应用程序的两个版本,每个版本对应一个Java版本。大多数源代码在不同版本中是相同的在处理特定版本时,我从相应的分区启动。
我正在寻找使用Subversion进行源代码版本控制的策略。我可以将存储库放在OS X分区上(两者都可见,无论哪个是当前的启动分区),但我相信只有当我从同一个分区启动时它才会被Time Machine备份。我可以将存储库放在外部磁盘上,但它不会被Time Machine备份。我住在农村,没有宽带互联网,所以任何远程或“云”存储库都无法使用。
我可以看到潜在的问题,例如,我已经启动到10.6,编辑了一些文件,然后想要重新启动到10.8进行一些回归测试。我不想在每次重启之前检查所有文件,然后在之后再次检查它们。
我特别喜欢Time Machine备份的便利性以及将我的机器恢复到已知状态的能力。必须采用单独的策略来备份Subversion存储库是不太可取的。
我从未使用过git,但会考虑它。
答案 0 :(得分:0)
我建议您使用git - 集中式vcs根本不适合您的情况 - 哪个磁盘是中心磁盘?我也不认为。使用DVC系统,没有中央回购,这正是您计划工作的方式。
使用git,每个克隆都是存储库*的完整副本。时间机器并不需要参与其中。
以下是我建议你解决的问题......
在一个磁盘上初始化你的git repo,默认分支('trunk')是每个版本共有的代码。
cd <your project>
git init
为您需要支持的每个Java版本创建一个分支。
git branch <name>
将repo克隆到另一个磁盘,并将每个磁盘设置为彼此的遥控器。
git clone <path>
git remote add <name> <path to other box>
现在,您只需在要处理的框中查看要处理的分支,并确保在提交后进行推送。
我肯定在上面的片段中错过了一两个git命令,只要原则很明确
答案 1 :(得分:0)
有人向我指出,Time Machine可以配置为在内部和外部磁盘上的任何和所有卷上执行备份,而不仅仅是启动卷。这使我的问题没有实际意义:我可以将存储库放在任何地方,然后确保在每个操作系统卷上正确配置Time Machine。