行星间版本控制(系统)

ipvc的Python项目详细描述


#行星间版本控制(系统)

ipvc是一个类似于git的分布式版本控制系统,但它构建在ipfs(行星间文件系统)上。它适用于任何类型的数据,而不仅仅是人类可读的内容。它还特别适合于对大型文件进行版本控制。基础概念受到Git和[Gitless](gitless.com)的严重影响。

\VC可能不适合于私有存储库,除非它托管在私有网络上。
*由于与IPFS守护进程(可能还有Python)的交互,IPVC命令非常慢,不像snappy git命令


ipfs及其内容可寻址的merkle dags是托管数据存储库和提交图的完美技术。


虽然有一个[git remote helper for ipfs](https://github.com/magik6k/git-remote-ipld)可以将git文件格式转换为可遍历的散列链接,但目前无法获得大型文件的互操作性,因为ipfs的最大块大小约为4mb,git将文件存储为单颗粒。虽然将来可能会有解决方案,但我们目前无法使用ipld重新创建兼容的散列。


*该实现利用ipfs的merkle-dag数据结构实现提交图、对象存储和分散式位种子共享
*支持开箱即用的大文件,无需插件、手动触发文件打包等功能正在(固定)大型版本化数据集,就像Bit Torrent一样
*使用IPN(跨行星命名系统)进行分散发布,不需要集中的Git服务器(就像其他人固定(种子)的报告一样长)
*使用go ipfs gateway server
*与gitless类似,每个分支都跟踪自己的工作区和暂存索引。这允许切换分支,而无需先提交或保存更改。这还意味着,在解决冲突的过程中,您可以切换到另一个分支来执行其他一些工作,并在稍后返回以解决这些冲突
*与gitless不同,暂存区域与git中的保持相同,以允许逐步构建提交,并从特定的文件
*当文件更改时自动更新存储库内容中的任何哈希链接
*仅签出您关心的大型存储库部分的能力

vc

用法
初始化存储库
````
$ipvc repo init
成功创建存储库
`````

创建一个文件并将其添加到暂存区域
`````
$echo"hello world">;myfile.txt
$ipvc stage add myfile.txt
更改:
+qmt78zsubmus4z925wzfrqqqHAJ56DQATFYMQUF7F8FF5O

``````



>查看到目前为止您在stage中添加了什么(状态)
``````
$IPVC stage
分阶段:
+myfile.txt qmt78zsubmus4z925wzfrqqqHAJ56DQATFYMQUF7F8ff5O
```````

/>提交分阶段的更改
```````
>$IPVC stage commit"我的第一次提交"
``

查看提交历史记录
```
$IPVC分支历史记录
*2018-03-17T14:43:22.254582我的第一次提交
````


更改myfile.txt
`````
$echo"不要惊慌">;myfile.txt
$IPVC stage add myfile.txt
更改:
qmt78zsubmus4z925wzfrqqqhaj56dqatfymuf7f8ff5o-->;qmbg1Mr6m7kej3z2mb3t85vxhuhd65kw3yw3hgzstyecw
```

查看更改内容
````
$ipvc stage diff
--
++++
@-1,2+1,2@
-你好世界
+不要惊慌更改
```
$ipvc stage commit"更新我的文件"
```

>通过创建新分支返回到上一个commit尚未实现nds

先决条件
*转到ipfs
*python>;=3.6

命令和示例
注意:尚未实现的命令已"注释"掉

*`ipvc repo init`
*`ipvc repo mv<;path1>;[<;path2>;]`
*`//ipvc repo rm[<;path>;]`
*`//ipvc repo`状态`
*`//ipvc repo ls-列出ipvc中的所有repo`
*`ipvc branch`状态`
*`ipvc branch create[--from commit<;hash>;]<;name>;`
*`//ipvc branch rm<;name>;`
*`//ipvc branch mv<;from>;<;to>;`
*`ipvc branch checkout<;name>;`
*`IPVC分支历史记录`
*`IPVC分支显示<;refpath>;`在浏览器中打开refpath`
*`//IPVC分支目录<;refpath>;` CAT refpath`
*`//IPVC分支目录`
*`//IPVC分支合并<;refpath>;`分析到Git合并`
*`//IPVC分支重播<;refpath>;analagous to git rebase`
*`//ipvc branch publish[--all]publish branch to ipns`
*`//ipvc branch unpublish[--all]`
*`ipvc stage status`
*`ipvc stage add<;path>;`
*`ipvc stage remove<;path>;`
*`ipvc stage commit<;msg>;`
*`ipvcIPVC diff content stage工作区的stage diff别名`
*`//IPVC stage uncommit`
*`IPVC diff files<;to refpath>;`from refpath>;`
*`IPVC diff content<;to refpath>;`from refpath>;`

*跟踪工作区、暂存区域和每个分支的头的当前状态。在执行每个ipvc命令之前都会更新工作区状态
*利用ipfs可变文件系统(mfs)方便地保存存储库和分支,并提交
*将存储库和分支存储为mfs上的文件夹和子文件夹以及全局设置
*对工作区、暂存区域和每个分支的头的引用作为子文件夹存储在每个分支中
*每个引用都有一个"bundle"子文件夹,用于存储对实际文件层次结构的引用和存储文件时间戳和权限的元数据(当前未存储在ipfs文件ipld格式)
*单个提交对象存储为文件夹,其中有指向父提交和存储库引用的链接,以及带有作者信息和时间戳的元数据文件

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java SimpleCursorAdapter删除值   java结束while循环条件   java检查设备是否连接到特定网络   java组织。冬眠MappingException找不到逻辑名称为annotation getter的列   为什么java邮件中会抛出此异常?   加载SDK时发生java Eclipse错误   返回奇怪输出的Java数组   JavaXStream和对象类序列化   将枚举列表传递给namedQuery后出现java非法转换异常。Hibernate中的setParameter()   java Android studio不允许我在字符串上使用开关?   有没有办法从Java程序访问存储在Chrome中的cookie   java在枚举中构造实例而不修改枚举类   java Blackberry JDE FieldChangeListener   java修复错误:未报告的异常InterruptedException   java Spring数据JPA:findAll(具有规范和可分页)在计数查询中失败