行星间版本控制(系统)
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格式)
*单个提交对象存储为文件夹,其中有指向父提交和存储库引用的链接,以及带有作者信息和时间戳的元数据文件
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格式)
*单个提交对象存储为文件夹,其中有指向父提交和存储库引用的链接,以及带有作者信息和时间戳的元数据文件