我可以从Git存储库中的不同提交并行读取文件吗?
我使用的是我可以从Git存储库中的不同提交并行读取文件吗?,git,duplicates,Git,Duplicates,我使用的是Git,用于对大文件(修改时)进行版本控制,并消除整个文件的重复。如果可能,我希望并行读取/访问该文件的提交版本 [Q]借助于Git,这可能吗?如果没有,是否有其他工具用于此 在这个场景中,假设我有一个Git存储库(a),其中包含一个10GB的大文件(myFile.txt),以及一个在运行期间使用myFile.txt的二进制代码。我提交了那些文件。请注意,我没有将其推入Github $ cd A && ls run // Assume it is a build
Git
,用于对大文件(修改时)进行版本控制,并消除整个文件的重复。如果可能,我希望并行读取/访问该文件的提交版本
[Q]借助于Git
,这可能吗?如果没有,是否有其他工具用于此
在这个场景中,假设我有一个Git存储库(a),其中包含一个10GB的大文件(
myFile.txt
),以及一个在运行期间使用myFile.txt
的二进制代码。我提交了那些文件。请注意,我没有将其推入Github
$ cd A && ls
run // Assume it is a build source code that do some operation with myFile.txt and gives an output
myfile.txt
$ git init
$ git add -N *
$ git commit -a -m "version1"
后来,我在myFile.txt
上做了一些修改,添加了几行,然后再次提交
$ git add -N *
$ git commit -a -m "version2"
[master 9fde555] version2
1 file changed, 100 insertions // Changed file is myFile.txt
此时,我想在parellel中运行源代码的两个进程(
run
),其中第一个作业应该与提交的版本1上的myFile.txt
交互,第二个作业应该与提交的版本2上的myFile.txt
交互
我可以轻松地将版本2上的
myFile.txt
复制到不同的文件夹中,并从复制的位置读取代码,但这将在该文件的大部分部分创建副本,我需要重新存储10 GB。这取决于具体情况。如果您的程序可以从流中读取,那么它非常简单:
git show <commit>:p/a/t/h/to/myFile.txt | run
git show:p/a/t/h/to/myFile.txt | run
或者,如果您使用的是bash,也许您可以:
run <(git show <commit>:p/a/t/h/to/myFile.txt)
运行一个10 GB的文件是不允许的,请重新组织您的回购评论。此外,您所管理的内容也不可能。因为程序从:/…
路径读取,所以程序是否能够使用stream writer@William对文件进行更改Pursell@alper不可以。如果你想做这样的事情,你需要对你的程序进行实质性的修改。你的程序不会从:…
读取。相反,您正在调用git从该路径生成一个数据流,并且您的程序正在从该数据流读取数据。为此,我想我唯一的选择是在磁盘上保存该文件的两个副本。有什么工具可以实现这一点吗?我在考虑“块级文件存储”。