所以,基本上我有一个项目的2个版本,对于一些用户,我想使用最新版本,而对于其他用户,我想使用旧版本。它们都具有相同的文件名,多个用户将同时使用它们。为了实现这一点,我想在不实际切换分支的情况下从不同的git分支调用函数。 有办法吗?
例如,当我的当前分支是v2
而另一个分支是flag
时;根据变量if flag == 1:
# import function f1() from branch v2
return f1()
else:
# use current branch v1
的值,调用函数
<input id="inputFileToLoad" type="file" onchange="encodeImageFileAsURL();" />
<div id="imgTest"></div>
<script type='text/javascript'>
function encodeImageFileAsURL() {
var filesSelected = document.getElementById("inputFileToLoad").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById("imgTest").innerHTML = newImage.outerHTML;
alert("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
console.log("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
}
fileReader.readAsDataURL(fileToLoad);
}
}
</script>
答案 0 :(得分:1)
如果没有评论为什么你需要这样做,你可以简单地检查你的回购两次:一次用于branch1,一次用于branch2(没有克隆两次)。
请参阅“git working on two branches simultaneously”。
然后,您可以让脚本知道其当前路径(/path/to/branch1
)以及其他分支的相对路径(../branch2/...
)
答案 1 :(得分:0)
你必须让这两个版本的代码都存在/可访问,以便动态调用这两个版本的代码。
实现此目的的最简单方法是让代码的两个版本都存在于不同的位置,如VonC's answer。
由于Python就是这样,你可以动态提取特定源文件的特定版本,动态编译它们(使用动态导入和临时文件,或exec
和内部字符串),因此运行代码不会偶然阅读程序源。我不鼓励这种方法:它很难(虽然不是很难)而且容易出错,容易出现安全漏洞,除非你写的像Python一样,否则总体上是一种糟糕的工作方式调试器或IDE。但如果这是你想要做的,你只需将问题分解为:
git show
,git cat-file -p
等)和第一个是Git编程练习(并且非常简单,git show 1234567:foo.py
或git show branch:foo.py
:您可以使用shell重定向或Python的subprocess
模块将输出重定向到文件,当完成文件时,第二个是中等难度的Python编程练习:请参阅the documentation,特别关注importlib
。