在远程服务器中,我设置了一个post-receive hook,以便对我的存储库进行git checkout:
#!/bin/sh
GIT_WORK_TREE=/var/www/<website> git checkout -f
Run Code Online (Sandbox Code Playgroud)
但是当我从本地机器推送到服务器中的git存储库时,我收到以下错误消息:
remote: error: unable to unlink old '<file>' (Permission denied)
Run Code Online (Sandbox Code Playgroud)
这出现了很多次,几乎每个文件都有一条错误消息.
但是我有一个README.txt文件,我可以使用git更改,这是它的权限:
-rw-r--r-- 1 <serverusername> <serverusername> 2939 Aug 2 10:58 README.txt
Run Code Online (Sandbox Code Playgroud)
但是具有完全相同的所有者和相同权限的其他文件会给我这个错误.
在另一个网站的另一个本地存储库中,我将本地计算机用户名作为所有者的文件,当我推送到远程服务器时,它尊重文件的远程服务器所有者,并像魅力一样工作.
显然它似乎与权限相关的错误,但我找不到修复它的方法,有什么建议吗?
我正试图在运行Mongo的Ubuntu服务器上释放一些空间.我已经附加了一个新的,空的8GB容量,并有空间移动东西.
我在/ var/lib/mongodb/journal/prealloc中有几个大(1GB)文件,删除它们或移动它们是否安全?如果我可以移动它们 - 任何人都可以给我一个关于如何为Mongo做这个的指针吗?
例如,你可以做一个git remote --verbosegit将显示你项目中的所有遥控器,git branch将显示所有分支并发出当前分支的信号,但是如何列出所有子树,没有任何破坏性命令?git subtree将给出用法示例,但不会列出任何内容.子树只有add,pull,push,split,merge.
目前,我有一个函数,有时会返回一个内部有一些函数的对象.使用expect(...).toEqual({...})它时似乎不匹配那些复杂的对象.具有函数或File类的对象(来自输入类型文件),它就是不能.怎么克服这个?
考虑这个伪代码:
(function(window){
var options = { /*where everything goes */ };
var instance = (function(options){
for (var i in options){
if (options.hasOwnProperty(i)){
this[i] = options[i];
}
}
})(options);
instance.callbacks = function(cb){
//...
}
instance.is_allowed = function()
//... checks, return boolean
}
window.instance = instance;
})(this);
Run Code Online (Sandbox Code Playgroud)
如果有人想操纵这个代码(例如恶意用户),他会is_allowed用自己的代码重写函数,例如,使用地址栏(他没有萤火虫,谁知道).
javascript:(function(){ window.instance.is_allowed = function(){ return true; } })();
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子,但重点是,Javascript中的任何内容都可以被覆盖.
我知道在es5中我们有Object.defineProperty,所以你可以设置:
// being explicit
Object.defineProperty(instance, "is_allowed", {
enumerable: false,
configurable: false,
writable: false,
value: function(){
// do checks
}
});
Run Code Online (Sandbox Code Playgroud)
实际上,在这个意义上最好的是使用Object.freeze(instance)或 …
我正在尝试为节点编写Google Maps帮助程序模块的声明,但是我遇到了库期望的PromiseConstructorLike问题,并正确地返回它的"PromiseLike"实例方法(根据https://googlemaps.github.io /google-maps-services-js/docs/module-@google_maps.html):
Promise function <optional> Promise constructor (optional).
Run Code Online (Sandbox Code Playgroud)
所以我做了(剥离到有趣的位):
declare namespace GoogleMaps {
export interface CreateClientOptions<T> {
/** Promise constructor (optional). */
Promise?: T;
}
export interface GoogleMapsClient<T> {
directions<U>(query, callback?: ResponseCallback<U>): RequestHandle<U, T>;
}
export interface Response<U extends any> {
headers: any;
json: U;
status: number;
}
export interface RequestHandle<U, T extends PromiseLike<Response<U>>> {
asPromise(): T;
cancel(): void;
finally(callback: ResponseCallback<U>): void;
}
export type ResponseCallback<U> = (err: Error, result: Response<U>) => void;
export function createClient<T extends …Run Code Online (Sandbox Code Playgroud) 当从服务器(例如Twitter和Facebook)处理OAuth时,您很可能会将用户重定向到要求获得应用程序权限的URL.通常,在单击链接后,您通过AJAX将请求发送到服务器,然后返回授权URL.
但是当你window.open在收到答案时尝试使用时,你的浏览器会阻止弹出窗口,使其无效.当然,您可以将用户重定向到新的URL,但这会破坏用户体验,而且令人讨厌.您不能使用IFRAMES,但不允许使用IFRAMES(因为您无法看到位置栏).
那怎么办呢?
我正在尝试使用node.js应用程序与名为U.are.U的.NET SDK指纹识别器进行交互.SDK提供.dll(win32和x64),Java和.NET库.我决定使用.NET简单易用,所有接口都可以使用.
所以,我面临的当前问题是如何调用这些.NET函数并仍然保留node.js的异步性质.应用程序流程(在.NET示例中)非常简单,对库进行3次调用,指纹完成.
private IEnumerable<Fmd> CaptureAndExtractFmd()
{
while (!reset)
{
DataResult<Fmd> resultConversion;
try
{
if (count >= 8)
{
SendMessage("Enrollment was unsuccessful. Please try again.");
count = 0;
break;
}
Fid fid = null;
if (!_sender.CaptureFinger(ref fid))
break;
if (fid == null)
continue;
count++;
resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);
SendMessage("A finger was captured. \r\nCount: " + (count));
if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
break;
}
catch (Exception)
{
break;
}
yield return resultConversion.Data;
}
}
Run Code Online (Sandbox Code Playgroud)
我如何更改它以便它可以在node.js中使用,而不是.NET gui程序?
还需要注意的是,node.js并不总是在.NET程序上调用函数来接收函数.程序的识别部分是异步发生的,并且当有人将手指放在指纹识别器上时会被启动,这意味着node.js部分不知道何时会发生这种情况.所以我不能一直依赖于询问.NET部分的数据,它必须在没有被问到的情况下调用node.js上的回调.所以基本上,这是一种双向通信,不仅仅是根据请求,因为请求使用网络服务器会容易得多.
我找到了一个node.js库,它可以缩小.NET和node.js之间的差距,称为edge.js,这会有什么帮助吗?
基本上, …
我有一个包含80多个方法的类,每个方法都接受一个包含一些已定义接口的对象.
class Stuff {
/* many more */
getAccount(req: IAccount, callback: ICallback) {
return this._call('getAccount', req, callback);
}
getIds(req: IIDs, callback: ICallback) {
return this._call('getIds', req, callback);
}
/* many more */
}
Run Code Online (Sandbox Code Playgroud)
非常'无聊'的东西,因为它只是映射到底层_call方法,并使每种方法的类型安全.
但有时这些reqparam对象是由2个或更多接口组成的,而不是每次创建另一个接口都有"尴尬",如下所示:
export interface ILoled extends IAccount {
loled: boolean;
}
export interface IRofloled extends ILoled {
rofled: boolean;
}
class Stuff {
getLols(req: ILoled){
}
getRofls(req: IRofloled){
}
}
Run Code Online (Sandbox Code Playgroud)
有什么方法我可以把它作为方法参数列表中的接口的"内联"混合?喜欢(显然不起作用):
class Stuff {
getMoreStuff(req: <{} extends IAccount, ITime>) {
}
}
Run Code Online (Sandbox Code Playgroud) 我正在努力使SystemJS与Typescript一起工作,但它们似乎相互冲突.
如何在没有与Typescript上的关键字冲突的情况下利用System.js中的自动加载?使用import/require使得Typescript使用它自己的方式来加载和引用文件,虽然它翻译export为module.exports = ...,但它不会做同样的事情import
是否有可能实现这一点,或者我将不得不等待Typescript支持ES6关键字?
typescript ×3
git ×2
.net ×1
ajax ×1
angularjs ×1
c# ×1
commonjs ×1
edge.js ×1
fingerprint ×1
git-checkout ×1
git-push ×1
git-subtree ×1
interface ×1
jasmine ×1
javascript ×1
matcher ×1
mongodb ×1
node.js ×1
overwrite ×1
popup ×1
singleton ×1
systemjs ×1
ubuntu ×1
window.open ×1