jha*_*ott 5 svn tags git version-control backup
我正在开发移动应用程序(iPhone,Android和Blackberry),最近从SVN转换为Git.
在我发布版本后的SVN中,我标记相关的分支/修订版以确保其状态被保留,然后我将一个目录添加到此标记并放入已发布的二进制文件中,并且(对于iPhone)还有用于该精确版本的调试符号文件(用于表示以后的任何崩溃报告).这些文件不需要进行版本控制,但是可以方便地存储历史工件和代码以确保它们被备份(SVN具有备份策略,而我的CI服务器上的构建则没有).
我试图找出Git中最好的等价物.可能最接近的是创建一个新分支,添加二进制文件,标记它,并删除分支.但是,我想知道是否有更好的方法可以做到这一点?
理想情况下,我想创建一个标记,然后将二进制文件作为未版本控制的文件附加到标记.这样,它们实际上不会出现在源代码树中,但它们存在于存储库中,与标记关联,以供有权访问存储库的任何人进行检索.在Git中有什么相同的东西吗?
VCS不是存储任何传递元素(如二进制文件)的理想位置,主要是因为:
交付更好地存储在artefact存储库(例如Nexus)中,其中校验和密钥(SHA1,MD5)将自动计算并与这些交付相关联,确保您可以在检查其完整性的同时将其恢复为在生产中使用它们.
这意味着拥有一个单独的存储库(来自VCS)以便管理这些元素.
正如Useless的回答中所提到的,您可以使用git notes将二进制blob与git对象(包括标记)相关联
原则上,注释是常规的Git blob,并且接受任何类型的(非)格式.您可以使用git hash-object从任意文件中二进制安全地创建注释:
$ cc *.c
$ blob=$(git hash-object -w a.out)
$ git notes --ref=built add -C "$blob" HEAD
Run Code Online (Sandbox Code Playgroud)
唯一的问题是如果没有定期清理这些钞票,那么回购的大小会失去控制.
另一种方法是使用git-annex,它允许将git提交与外部内容相关联(意味着内容可以是二进制,大小与您需要的一样大).
git-annex允许使用git管理文件,而无需将文件内容检入git.
虽然这看似矛盾,但是当处理大于git的文件当前可以轻松处理时,无论是由于内存,时间还是磁盘空间的限制,它都很有用.
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |