我想获取修订版XXXXXX和HEAD之间已更改/添加/删除文件的列表.这是我到目前为止:
String oldHash = "a97e5553e37a25bd1a3c99eab303145baed08dbd";
Git git = Git.open(new File("/tmp/jgit"));
Repository repository = git.getRepository();
ObjectId old = repository.resolve(oldHash);
ObjectId head = repository.resolve("HEAD");
// how do i get the trees from the obj. id?
List<<DiffEntry> diffs = git.diff().setNewTree(null).setOldTree(null).call();
for(DiffEntry diff : diffs) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
这是正确的方法,如果是这样,我如何获得git.diff()所需的树?
阅读OWASP CSRF预防备忘单,提出防止这类攻击的方法之一是同步器令牌模式.
如果会话令牌在加密方面很强,那么它是否可以像下面的伪代码中所描述的那样加倍作为csrf令牌?
客户:
<script>
dom.replace(placeholder, getCookie("session-cookie"))
</script>
<form>
<input type="hidden" name="csrf-cookie" value="placeholder-value"/>
<input type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
服务器:
if(request.getParameter("csrf-cookie") != user.getSessionCookie())
print "get out you evil hacker"
Run Code Online (Sandbox Code Playgroud)
在页面加载时使用javascript设置cookie,以防止用户意外泄露会话cookie,例如,如果他们将页面副本通过电子邮件发送给朋友.
我经常发现自己正在做这样的工作流程:
$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
Run Code Online (Sandbox Code Playgroud)
(评论输出)
$ vim ./tmp/somefile.xml
Run Code Online (Sandbox Code Playgroud)
现在,如果有一些方便的方法来使用find命令的输出并将其提供给vim,那将是很好的.
我提出的最好的是:
$ nth () { sed -n $1p; }
$ find . |grep somefile
./tmp/somefile.xml
./test/another-somefile.txt
Run Code Online (Sandbox Code Playgroud)
(评论输出)
$ vim `!!|nth 2`
Run Code Online (Sandbox Code Playgroud)
我想知道是否有其他的,可能更漂亮的方法来完成同样的事情?
为了澄清,我想要一种方便的方法从先前运行的命令中获取第n行,以便快速打开该文件以便在vim中进行编辑,而无需使用鼠标或制表符剪切和粘贴文件名 - 完成我在文件路径中的操作.