我的任务是向同事们介绍Git,他们几乎都是习惯使用TortoiseCVS的Windows用户.我已经使用Git大约一年了,但我几乎只使用了Unix命令行界面.
所以我一直在努力熟悉Windows GUI Git工具,包括TortoiseGit.但在我看来,这不仅仅是Git命令行界面上的GUI皮肤,而且实际上完全抽象了一些东西,特别是索引.
例如,当我在Windows资源管理器中右键单击一个新的无版本文件时,我可以从TortoiseGit菜单中选择"添加",然后提交此文件,但是已经在Git中的文件中缺少相同的菜单项,在哪种情况下我只看到"submodule add"选项.
有没有办法与TortoiseGit交互索引?
我在寻找类似物git add,git diff --cached以及git reset HEAD,具体.
以下是 Google小组关于此事的消息,但这是从去年夏天开始的.
我正在使用TortoiseGit版本1.6.5.0和msysgit版本1.7.4.msysgit.0,如果重要的话.我几天前安装了这些,所以它们可能是合理的最新版本.
MySQL语法错误通常很模糊,只指定发生错误的行.编写一个产生准确有用的错误消息的解析器并不是一件容易的事,但它并不是一个开放的研究问题:大多数通用编程语言的编译器会产生更有用的错误消息.
那么为什么MySQL的解析器不会产生更好的错误消息呢?它具体与MySQL有关,还是一般的SQL语法使得这非常困难?
这是一个例子:
SELECT * FROM foo
WHERE bar > 0
AND baz NOT NULL
ORDER BY qux ASC
Run Code Online (Sandbox Code Playgroud)
MySQL生成以下错误消息: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL ORDER BY qux ASC'
其实NOT NULL应该是IS NOT NULL.那么为什么MySQL不会产生错误Unexpected token NOT at line 3 column 8呢?
在编辑Lisp代码时,有时完全注释掉顶级定义是有用的,如下所示:
;(defun some-fn-which-is-broken (x)
; ...)
Run Code Online (Sandbox Code Playgroud)
...或只注释一个s表达式的一部分,如下所示:
(foo x
; y
z)
Run Code Online (Sandbox Code Playgroud)
...然后重新编译文件并在REPL中测试一些东西等.
启用paredit-mode后,这不起作用.如果该点恰好在下面的第一个paren之前,那么会发生什么:
(defun some-fn (x)
...)
Run Code Online (Sandbox Code Playgroud)
并键入分号,输入的是分号和换行符:
;
(defun some-fn (x)
...)
Run Code Online (Sandbox Code Playgroud)
与注释掉部分s表达式相同:
(foo x
;
y
z)
Run Code Online (Sandbox Code Playgroud)
我认为,如果定义全部在一行,这有效:
;(defparameter *foo* 10)
Run Code Online (Sandbox Code Playgroud)
...但否则我无法知道如何做到这一点.Paredit很棒,我真的很想继续使用它.是否有任何Lispers知道解决这个问题的方法,或者Emacs -wizards谁可以掀起一些Emacs Lisp绑定到类似的东西paredit-comment-out-s-expr?
如果有更多的Lispy或Emacsy方法完成基本相同的事情,请注释掉部分源代码以重新编译,请不要犹豫,建议它们!
我在mac中使用git.我正在尝试使用自动完成功能.我按照这些步骤(http://www.codethatmatters.com/2010/01/git-autocomplete-in-mac-os-x/)但我得到这个错误,任何想法?
:找不到命令-bash:/Users/me/git-completion.bash:第80行:未执行的令牌in
-bash: /Users/me/git-completion.bash: line 80:案例"$ COMP_WORDBREAK" 附近的语法错误
我有一个比较两组的测试,当它失败时,输出的形式如下:
- Expected
+ Received
Set {
Position {
"x": 0,
- "y": 0,
+ "y": 2,
},
Position {
- "x": 1,
- "y": 1,
+ "x": 0,
+ "y": 0,
},
Position {
- "x": 2,
+ "x": 1,
"y": 1,
},
Position {
- "x": 2,
- "y": 0,
+ "x": 1,
+ "y": 2,
},
}
Run Code Online (Sandbox Code Playgroud)
我发现这很难阅读,因为它只是一个文本差异,真正的差异被掩盖了(集合相差 2 个元素,但输出很难分辨哪个)
这是我通过创建的应用程序create-react-app,我正在使用npm test或运行测试yarn test。我认为命令行 arg--expand可以解决问题,但这似乎并没有改变输出(yarn test -- --expand例如使用)我认为问题是通过命令行 …
我们在我们的应用程序中使用本机BlackBerry相机,使用Invoke类启动相机.我们监听正在写入文件系统的图像,当用户完成相机时,我们会打电话
Application.getApplication().requestForeground();
Run Code Online (Sandbox Code Playgroud)
在fileJournalChanged()里面回到我们的应用程序.
在某些情况下,这会导致相机在某些设备上停留在图像上时出现问题.如果你想要血腥的细节,你可以在一段时间后在BB论坛上看到我的帖子.
我只想说,我仍在努力解决这个问题.使用EventInjector注入ESC键按下工作,但是在这个问题中
它被描述为安全威胁.然而,这被广泛建议作为关闭相机和解决其他问题的方法.有没有人使用这种方法来关闭相机或做其他事情?关闭相机是否有更好的"最佳实践"方法,因为显然在Android中(我实际上并不知道,这里的高级开发人员提到过它)?
通过"问题"我想我真的是指业务规则类型的问题...应用程序被组织列入黑名单,在应用程序商店中抨击等等?
在此先感谢,这一直困扰着我.
例如:
vagrant@precise32:/vagrant$ rlwrap sml
Standard ML of New Jersey v110.76 [built: Mon May 12 17:11:57 2014]
- TextIO.StreamIO.inputLine ;
[autoloading]
[library $SMLNJ-BASIS/basis.cm is stable]
[autoloading done]
val it = fn : ?.TextIO.instream -> (string * ?.TextIO.instream) option
- val s = TextIO.openIn "README.md" ;
val s = - : TextIO.instream
- TextIO.StreamIO.inputLine s ;
stdIn:3.1-3.28 Error: operator and operand don't agree [tycon mismatch]
operator domain: ?.TextIO.instream
operand: TextIO.instream
in expression:
TextIO.StreamIO.inputLine s
-
Run Code Online (Sandbox Code Playgroud)
我知道由于值限制而创建的虚拟类型变量将在其中包含问号,例如
- [] @ []; …Run Code Online (Sandbox Code Playgroud) 忍受我...我不认为这太主观但也许我错了.
最近我想分解出一些在我们的BlackBerry应用程序上绘制自定义位图背景的重复代码.
(这个问题并不是关于黑莓的,所以我将在这里提供一些关于BB GUI的细节,以便非BB的Java人可以权衡......)
FullScreen类来自BB API - 它有一个方法paint(Graphics),框架调用它来绘制屏幕和添加到它的任何组件.可以覆盖它来进行自定义绘制 - 比如在任何其他绘制发生之前绘制位图背景(较新的BB API提供Background类但我们的应用程序必须在旧手机上工作).
我想要一堆具有相同背景的屏幕,每个屏幕都做了一些自定义绘画...这就是我想出的:
abstract public class BGFullScreen extends FullScreen {
Bitmap bg;
public BGFullScreen(Manager mgr, long style) {
super(mgr, style);
bg = Bitmap.getBitmapResource("bg.jpg");
}
abstract protected void innerPaint(Graphics g);
protected void paint(Graphics g) {
g.drawBitmap(new XYRect(0, 0, bg.getWidth(), bg.getHeight()), bg, 0, 0);
innerPaint(g);
super.paint(g);
}
}
Run Code Online (Sandbox Code Playgroud)
然后,每个屏幕将子类化此抽象类并实现innerPaint().这样,当BB框架调用paint()方法时,每个屏幕都可以在绘制背景后进行自定义绘制(因此任何绘制都发生在背景之上)但是在绘制屏幕的组件之前,当使用FullScreen时. paint()被调用.
(我想出了这个,因为我在家里一直在研究Common Lisp,我想到我想要做的就像CLOS中的交错方法组合一样)
这是上面抽象类的示例实现:
public class MainAppScreen extends BGFullScreen {
public MainAppScreen() {
super(new VerticalFieldManager(), 0);
// add some components to the screen:
add(new …Run Code Online (Sandbox Code Playgroud) 在OCaml中编写bit-twiddling代码最常用的方法是什么?我知道非常酷的Bitstring库,虽然这是在某些协议中解析二进制数据的好方法,但它不支持像xor或移位这样的按位运算.
我相信该库使用的底层数据结构只是OCaml字符串,我知道这些字符串是可变的(并且相对紧凑?我想我读过那里的开销很少......)字节数组,但是你不能方便地做字符串作为字节数组的许多按位操作,因为xor,移位等没有在字符上定义,而只在整数类型上定义,所以你必须在int和chars之间来回转换...例如,逻辑移位左定义on chars(bytes):
let byte_lsl (x : char) (n : int) : char =
Char.chr (255 land (Char.code x lsl n))
# byte_lsl '\x0f' 1 ;;
- : char = '\030'
Run Code Online (Sandbox Code Playgroud)
这是我们能做的最好的吗?
据推测,如果编译器没有将字符打包成机器字,这实际上并不是低效的,并且与Java中的情况大致相同......但是Haskell和Standard ML都提供了较小的无符号整数类型,从而产生了更清晰的代码, 恕我直言.
http://www.standardml.org/Basis/word.html#Word8:STR:SPEC
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-Word.html#t:Word8
我在Intellij中处理了很多项目,这些项目的格式不好或不合常规,特别是在“ Continuation”行的缩进明显不同于Intellij的配置方面。我不想在许多文件甚至整个文件中都解决此缩进问题(这违反了我们的技术团队的政策,因为这会破坏git-blame,也因为会导致嘈杂的差异或无关紧要的提交)
如果我要使用这样的缩进来编辑文件,则Intellij可以自动缩进新的代码行或已编辑的行,这很好。但是我经常发现它在文件的其他位置缩进了其他行,几乎总是这些“继续”行*
如何配置Intellij以停止更改这些设置?有一个配置选项可以仅删除已更改的行上的尾随空格,但是我找不到控制此行为的配置在哪里。FWIW不会在保存时发生这种情况,但似乎是在其他一些触发器之后发生的,但是我不确定是什么触发器。我认为当您自动导入类时可能会发生?
*我认为这就是所谓的,例如:
foo.bar()
.baz() // a line that might be changed by Intellij
在JavaScript中,为什么在循环中创建函数的具体原因可能是计算上的浪费?
在道格拉斯克罗克福德的JavaScript第39页上,"避免在循环中创建函数.它可能在计算上浪费".我似乎无法弄清楚为什么在循环中创建函数会比外部更浪费.