我正在尝试了解创建ruby File对象时会发生什么。
需要注意的是,我是否可以在源树的一个分支上为文件创建File对象,然后切换分支,然后仍然可以通过初始文件对象访问上一个分支中的文件我创造了。
这样的事情:
repo = Rugged::Repository.new('path/to/repo/')
repo.checkout("test_branch")
file = File.new('path/to/repo/file.xml')
repo.checkout("master")
file.read # hopefully reading a file from the `test_branch`
我希望file.read
现在可以从test_branch
读取文件,即使我将回购文件签出回主分支。
这会有用吗?
答案 0 :(得分:0)
File.new
是懒惰的,不会将整个文件加载到内存中。您必须read
才能获取内容。做一个简单的测试,创建一个文件,用File.new
打开它并在阅读之前修改它的内容。