我有一个/foo/bar大型提交历史和多个分支的git repo .
我现在想要/foo/baz处于相同的回购中/foo/bar,这(我认为)意味着我需要创建一个新的回购/foo.但是,我想保留我所做的变化的历史/foo/bar.
我首先想到的是git format-patch,然后是apply,但是不保留提交消息.
因为我已经在工程师工作了这么多年,我知道如果我不提供背景,我只会得到"你想要完成什么?"形式的一百个答案.我将提供激发我的问题的背景.但是不要混淆我问的问题的背景上下文,这与在语法请求之间使目标代码不可缓存的JavaScript语义特别相关.我不打算就如何更快地使我的webapp提出建议.这与我的问题完全不同,这可能只对那些曾经使用JavaScript编译器或者至少是动态语言编译器的人负责.
背景:
我正在尝试提高Web应用程序的性能.在其众多资源中,它包含一个巨大的JavaScript文件,其中包含40k行和130万个字符的预缩小.后缩小它仍然很大,并且在同步加载时仍然会向window.onload事件添加大约100ms,即使源缓存在客户端也是如此.(我最终排除了通过观察请求日志并观察它没有被请求来缓存资源的可能性.)
在确认缓存后它仍然很慢之后,我开始在主流浏览器中对JavaScript缓存进行一些研究,并且已经了解到它们都没有缓存目标代码.
我的问题是基于这项研究的一些假设断言的形式.如果他们错了,请反对这些断言.
JavaScript对象代码不会在任何现代浏览器中缓存.
"对象代码"可以表示从表示简单线性化分析树的字节代码到本机机器代码的任何内容.
Web浏览器中的JavaScript对象代码很难缓存.
换句话说,即使您在外部标记中包含缓存的JS源文件,在页面上包含该脚本也会产生线性成本,即使该脚本仅包含函数定义,因为所有这些源代码都需要被编译成目标代码.
JavaScript对象代码很难缓存,因为必须对JS源进行评估才能进行编译.
语句能够以动态方式影响下游语句的编译,难以静态分析.
3A.(3)之所以如此,主要是因为eval().
评估可能会对DOM产生副作用.
因此,需要在每个页面请求上编译JavaScript源代码.
奖金问题:任何现代浏览器都会为缓存的JS源文件缓存一个解析树吗?如果没有,为什么不呢?
编辑:如果所有这些断言都是正确的,那么我会给任何可以解释它们为什么是正确的人的答案,例如,提供一个JS代码示例,它不能作为目标代码缓存,然后解释原因不.
我很欣赏有关如何从这里开始使我的应用程序更快的建议,我大多赞同他们.但是我想填补的知识差距与JS对象代码缓存有关.
在工作中,开发没有版本控制.我的意思是,只有当变更集准备好进行回归测试时,才允许我们检查P4仓库.我们不能检查intercolary变化!在开发期间没有版本控制存在许多问题,我不需要在这里讨论.相反,我把问题带到了prodsys,他们说,"不,但你在主目录中做的是你的事".基本上,如果我需要,我可以自己安装.
不幸的是,我不能自己安装它,因为我在CentOS 5工作,我没有root.如果你没有root,百胜不会给你时间.那么我该怎么做才能得到git?我很好用静态链接的二进制文件,如果这很容易,但我无法在任何地方找到这样的东西.我也在寻找git-p4.
编辑:我已经下载了tarball,但我想我错过了deps.我已经通读了INSTALL文档并选择了每个可选的依赖项:
make prefix=$HOME/git NO_TCLTK=YesPlease NO_OPENSSL=YesPlease NO_CURL=YesPlease NO_EXPAT=YesPlease
Run Code Online (Sandbox Code Playgroud)
但我仍然无法建立.
我收到此错误:
: command not foundline 2:
: command not foundline 5:
: command not foundline 8:
./GIT-VERSION-GEN: line 14: syntax error near unexpected token `elif'
'/GIT-VERSION-GEN: line 14: `elif test -d .git -o -f .git &&
Run Code Online (Sandbox Code Playgroud)
它构建了很多.o,直到我到达:
...
LINK git-daemon
make: *** No rule to make target `GIT-VERSION-FILE', needed by `git-am'. Stop.`
Run Code Online (Sandbox Code Playgroud)
我又被卡住了.
textarea 表单的 onChange 属性需要一个React.EventHandler<React.FormEvent<HTMLTextAreaElement>>.
深入兔子洞,我们发现
interface EventHandler<E extends SyntheticEvent<any>> {
(event: E): void;
}
type FormEventHandler<T> = EventHandler<FormEvent<T>>;
/* ... */
interface FormEvent<T> extends SyntheticEvent<T> {
}
Run Code Online (Sandbox Code Playgroud)
换句话说,onChange 只是需要一个接受 FormEvent 并返回 void 的函数,而 FormEvent 目前与 SyntheticEvent 相同。
问题在于SyntheticEvent<T>.target: EventTarget,并EventTarget没有定义value。
我注意到还有currentTarget: EventTarget & T,其中 T 是HTMLTextInputArea,并且似乎已经定义了值。但表单处理页面显示 event.target正在查看,而不是event.currentTarget。有什么不同?我应该遵循打字还是文档?
编辑:我回答了我自己的问题。currentTarget是我将处理程序绑定到的元素,并且target是接收引发此事件的操作的元素。我想我总是想从 读取值currentTarget,所以在这种情况下,我认为打字引导我正确,而文档引导我错误。
我正在尝试编写一个从文件中读取原始字节的函数,将其"转换"为"普通"类型,然后对其进行排序.
为了做到这一点,我需要告诉它应该如何解释二进制数据 - 即二进制数据的类型是什么.
为了使它成为"二进制"数据,在"我可以将此数据视为原始位,当我从磁盘读取和写入时"时,数据的类型必须是二进制和位.而且,要对它进行排序,它必须是Ord的成员.
受这些方式限制的任何类型都应该是可排序的.
作为一个小黑客,为了将类型传递给sort函数,我正在传递一个类型的居民.(如果有办法传递类型并实现结果,我很想知道.)
{-# LANGUAGE RankNTypes #-}
import Data.Binary.Get
import Data.Binary.Put
type Sortable = forall a. (Bits a, Binary a, Ord a) => a
data SortOpts = SortOpts { maxFiles :: Int
, maxMemory :: Integer
, maxThreads :: Int
, binType :: Sortable
}
defaultOpts = SortOpts { maxFiles = 128
, maxMemory = 1000 * 1000 * 1000 * 1000
, maxThreads = 4
, binType = 0 :: Word32
};
putBinaryValues :: Binary …Run Code Online (Sandbox Code Playgroud) 我有一个函数,它接收 JS 对象列表作为参数。我需要将有关这些对象的信息存储在私有变量中以供将来参考。我不想将属性填充到对象本身中,我只想将其保留在字典中。我需要能够在亚线性时间内查找对象的元数据。
为此,我需要一个hash函数,对于任意两个对象o1和o2,
hash(o1) !== hash(o2)每当o1 !== o2。
这种哈希函数的一个完美例子就是对象的内存地址,但我不认为 JS 公开了这一点。有办法吗?
在尝试使用-webkit css样式来获取渐变文本时,我在iPhone 4S和gen-2 iPad上的手机游戏中得到了令人讨厌的文物.
这是应用于文本元素的相关CSS:
background-image: -webkit-linear-gradient(#eee 0%, #4a80e5 100%);
background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eee), to(#4a80e5));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
Run Code Online (Sandbox Code Playgroud)
它在Chrome和Safari中看起来不错,在Firefox中优雅地失败.它在移动Safari中看起来很糟糕.您可以在http://www.synchronautapp.com上看到一个实例
在移动游猎中,风格元素周围有1px边框.这些边界来来去去取决于用户放大的方式.示例:http://synchronautapp.com/mkramer/IMG_0088.PNG
谷歌搜索没有产生许多类似的问题.是什么导致了这个问题,是否有一种解决方法可以保持渐变文本?是否有针对移动webkit的纯CSS回退计划?
当我的用户在屏幕上进行肮脏的更改时,我会设置一个路由防护,以在他们尝试离开时提示他们保存或丢弃。
但是,如果由于不活动而将其注销,则我想强制导航并绕过路由保护程序(通过放弃对其所做的更改),以确保其屏幕为空白。
我如何绕过路线警卫?
我正在使用Rx来保留动画时钟.每个动画帧,它将间隔刻度映射到该刻度的新值.
假设我想暂停动画.最自然的方式是以某种方式暂停时钟rx然后在以后恢复它.
取消订阅然后重新订阅不是一个自然的适合,因为这个动画时钟是一个冷可观察.我不想在他们恢复时重新启动动画.如果我寻求一种解决方法,我将不得不生成一个新的简历rx,这使得所有公开的API变得非常复杂.
背压方法看起来不太有希望:
pause不起作用,因为我想从我离开的地方恢复,而不是向前跳.换句话说,我不想在它关闭时丢弃滴答声.
pausableBuffered 不起作用,因为在恢复时,它将尽可能快地消耗所有累积的滴答.
使用某种虚拟时间调度程序来完全停止时间然后恢复正常时间可能是(?)
我在RxJS 5.0rc4上,但我不知道如何在RxJS 4上执行此操作.任何一个版本的建议将不胜感激.
我试图在iOS上在GPUImage上实现视频录制.
我有一个GPUImageVideoCamera,我正在尝试设置这样的录音:
-(void)toggleVideoRecording {
if (!self.recording) {
self.recording = true;
GPUImageMovieWriter * mw = [self createMovieWriter: self.filter1];
[self.filter1 addTarget:mw];
mw.shouldPassthroughAudio = YES;
[mw startRecording];
}
else {
self.recording = false;
[self finishWritingMovie];
}
Run Code Online (Sandbox Code Playgroud)
}
-(GPUImageMovieWriter *) createMovieWriter:(GPUImageFilter *) forFilter {
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/CurrentMovie.m4v"];
unlink([pathToMovie UTF8String]);
NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie];
GPUImageMovieWriter * mw = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:forFilter->currentFilterSize];
self.movieWriter = mw;
self.movieURL = movieURL;
return mw;
}
Run Code Online (Sandbox Code Playgroud)
这实际上大部分都有效 但是,MoviewWriter需要输入媒体的CGSize,我不知道如何将它从VideoCamera中拉出来.首先,尺寸会有所不同,因为相机正在使用sessionPreset:AVCaptureSessionPresetHigh,这意味着它会根据设备的功能而变化.其次,方向改变了相关的CGSize.如果用户以横向模式开始录制,我想转置尺寸.
对于任何知道如何使用vanilla CoreVideo执行此操作的人,我可以将AVCaptureSession从我的GPUImageVideoCamera中拉出来.(但我已经阅读了AVCaptureSession的API,没有什么看起来很有希望).
甚至将我引用到处理此项目的示例项目也会非常有帮助.
我有这种类型和这些功能:
data Tag a where
Tag :: (Show a, Eq a, Ord a, Storable a, Binary a) => a -> BL.ByteString -> Tag a
getVal :: Tag a -> a
getVal (Tag v _) = v
isBigger :: Tag a -> Tag a -> Bool
a `isBigger` b = (getVal a) > (getVal b)
Run Code Online (Sandbox Code Playgroud)
代码没有做出类似的检查:
No instance for (Ord a)
arising from a use of `>'
In the expression: (getVal a) > (getVal b)
In an equation for `isBigger':
a …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个线程池,其中池中的每个线程都有一个thread_local! 可供该工作线程上的任务使用的类型。(T在下面的例子中)。该类的主要目的是资源T不需要Send,因为它将通过工厂方法在每个工作线程上本地构造,即 Send.
我的用例是在一个!Send数据库连接池上工作,但我试图使它在资源类型上通用T。
extern crate threadpool;
use std::sync::mpsc::channel;
use std::sync::Arc;
// A RemoteResource is a threadpool that maintains a threadlocal ?Send resource
// on every pool in the thread, which tasks sent to the pool can reference.
// It can be used e.g., to manage a pool of database connections.
struct RemoteResource<T, M>
where
M: 'static + Send + Sync + Fn() -> T,
{
pool: …Run Code Online (Sandbox Code Playgroud)