有人拿了Moodle的一个版本(我不知道),在一个目录中应用了很多变化,然后发布它(树在这里).
如何确定最有可能编辑原始项目的哪个提交以形成此树?
这将允许我使用此补丁在适当的提交中形成分支.当然,它来自1.8或1.9分支,可能来自发布标记,但特定提交之间的差异对我没有多大帮助.
事后更新:knittl的回答让我尽可能接近.我首先添加了我的补丁仓库作为远程"外来"(没有共同提交,没关系),然后在带有几个格式选项的循环中做差异.第一个使用--shortstat格式:
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff --shortstat "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment >> ~/rdiffs.txt;
echo "$REV" >> ~/rdiffs.txt;
done;
Run Code Online (Sandbox Code Playgroud)
第二个只计算了没有上下文的统一差异中的行变化:
for REV in $(git rev-list v1.9.0^..v1.9.5); do
git diff -U0 "$REV" f7f7ad53c8839b8ea4e7 -- mod/assignment | wc -l >> ~/rdiffs2.txt;
echo "$REV" >> ~/rdiffs2.txt;
done;
Run Code Online (Sandbox Code Playgroud)
有成千上万的提交要挖掘,但这个似乎是最接近的匹配.
为了"有趣"我将松散的几个Java类移植到PHP(例如java.util.regex.Matcher),所以我希望能够为这些运行/移植单元测试:
java.lang.StringBuilderjava.util.regex.Patternjava.util.regex.Matcher我在哪里可以找到它们?任何半新版本的测试都会有所帮助.
HTTP服务器使用内容协商来根据客户端的Accept-Encoding标头提供单个URL标识或gzip编码.
现在说我们在客户端和httpd之间有一个像squid这样的代理缓存.
如果代理缓存了URL的两种编码,它如何确定要提供的服务?
非gzip实例(最初未提供服务Vary)可以提供给任何客户端,但编码实例(具有Vary: Accept-Encoding)只能发送到具有与Accept-Encoding原始请求中使用的相同标头值的客户端.
例如Opera发送,"deflate, gzip, x-gzip, identity, *;q=0"但IE8发送"gzip, deflate".根据规范,缓存不应该在两个浏览器之间共享内容编码的缓存.这是真的?
本机PHP会话功能很棒,但它最终是一个单例.有时您需要维护多个应用程序的状态以及已启动会话的范围(例如,在应用程序框架中).从技术上讲,人们可以在更改后停止/重新启动会话session_name(),但这在大多数应用程序中是不切实际/不可能/不安全的.session.save_path如果一个应用程序使用非磁盘适配器存储会话数据,则也不能使用共享.
本机会话中的功能无法在用户代码中完成,所以有人这样做了吗?
更新1: CI_Session确实是一个带有一些有用代码的用户态实现,但它与CodeIgniter高度耦合.
更新2:这是一个很棒的API:
// setup
$saveHandler = new UserlandSession_SaveHandler_Files('5;/tmp');
$sess = new UserlandSession($saveHandler);
$sess->name('PHPSESSID2');
$sess->gc_maxlifetime = 86400;
$sess->setProxy($state); // passed by ref
// usage
$sess->start(); // stored string unserialized to $state
$state['foo'] = 'bar';
$sess->write_close(); // $state serialized to storage
Run Code Online (Sandbox Code Playgroud)
如果我总是重定向到应用内路由,那么Redirectreact-router-dom(v4)中的组件和this.props.history.push()?之间的区别是什么?
例如,假设我希望用户给定的标题添加到URL和重定向/foo/123到/foo/123/some-title(均含有相同的路线/组件渲染).
我看到了Redirect传递状态的一些用途.这到底在哪里?
是否为反模式指定要在状态中重定向到的位置?为什么示例代码看起来不像这样:
save() {
this.setState({ redir: '/new-path'; });
}
...
render () {
if (this.state.redir) {
return <Redirect to={this.state.redir} />;
}
...
}
Run Code Online (Sandbox Code Playgroud) 在期间Zend_Controller_Action::init(),有没有办法取消行动(因此不会被调用)?
<?php
class JsonApiController extends Zend_Controller_Action {
function init()
{
// try JSON decoding the raw request body
if ($jsonDecodingFailed) {
echo '{"error":"invalid JSON"}';
$this->_cancelAction(); // something like this exist?
}
}
}
Run Code Online (Sandbox Code Playgroud)
我目前的解决方法是创建一个空nullAction()方法并调用$this->_forward('null')转发它.
编写函数是否会影响本地var语句被参数替换?例:
function howManyMatch(arr, pattern, /*ignored:*/ i, l, total) {
l = arr.length;
total = 0;
for (i = 0, i < l; i++) {
if (pattern.test(arr[i]))
total++;
return total;
}
Run Code Online (Sandbox Code Playgroud)
一些优点:
var陈述;varS作为可能的...和缺点:
arguments可以以意想不到的方式改变.见下文仍然可能是一个简单的方法让minifier自动挤出更多的位.
更新:目前尚未提及的一大缺点:如果使用N个参数调用函数,则前N个项arguments将绑定到参数列表中的前N个标识符(请参阅10.1.8中的最后一个项目符号).考虑一下:
function processStuff(/*ignored:*/i, j, k) {
// use i/j/k to loop
// do stuff with the arguments pseudo-array
}
Run Code Online (Sandbox Code Playgroud)
在上面的例子,如果你叫processStuff(stuff1, stuff2),设置i和j …
假设我正在设计一个库,用SHA-256 HMAC签名/验证消息.如果最终用户使用弱共享密钥并发送大量短消息,我认为存在攻击者发现密钥的风险.
我的直觉说我应该在密钥上添加一个唯一的(每个消息)盐,以便对密钥进行逆向工程更难.
关键盐腌有多少帮助,我还能通过腌制消息获得任何收益吗?
我有一个Travis-CI脚本,用于检查拉取请求的提交消息.GitHub为它提供了一系列提交,它用于git log --format=online "<lastref>..<firstref>"构建要检查的SHA列表.
这在大多数情况下都很有用,但偶尔会发生这种情况:
我的拉取请求(将分支2.2合并到2.x,多次提交)在Travis上生成此命令:
git log --format=oneline b5d12909dacd80d21c4e4f4ca6d5683d6e547f9e..b349be9418371c1f694dabeccbce0e946fde3a0a
Run Code Online (Sandbox Code Playgroud)
在本地,这可以按预期工作.我得到了PR的提交.但是,在Travis上,b5d129提交没有出现,因此它会将每次提交转储回项目的开头.
这里发生了什么?
更新:我做了另一个合并PR,这次是Travis的默认git clone深度为50,但也不包括2.x上的新提交.无论如何,这个新PR的构建工作正常.我还是难过.克隆深度不应该有任何影响,因为如果没有必要的提交,结账会失败.
git ×2
http ×2
php ×2
arguments ×1
caching ×1
commit ×1
compression ×1
controller ×1
deflate ×1
diff ×1
encoding ×1
git-log ×1
gzip ×1
hash ×1
hmac ×1
java ×1
javascript ×1
minify ×1
patch ×1
proxy ×1
pull-request ×1
react-router ×1
reactjs ×1
redirect ×1
salt ×1
session ×1
travis-ci ×1
unit-testing ×1
userland ×1
variables ×1