小编3ch*_*eel的帖子

使用git,我如何执行git add并仍然忽略.gitignore中的模式?

我想做一些类似的事情git add *.java而不是因为其中一个文件与.gitignore相匹配而让它失败.

例如:在我的目录中

ignored.java
something.java
somethingelse.java 
somethingevenmoreelse.java.
Run Code Online (Sandbox Code Playgroud)

最后三个文件刚刚由我创建.然后我想做git add *.java

并添加这三个文件.换句话说,而不是给我

The following paths are ignored by one of your .gitignore files:
ignored.java
Use -f if you really want to add them.
fatal: no files added
Run Code Online (Sandbox Code Playgroud)

...我宁愿忽略.gitignored文件并添加其余文件.

git

8
推荐指数
1
解决办法
225
查看次数

为什么Django语言本地化的makemessages功能会忽略html文件?

我试图在项目上运行Django语言本地化,但makemessages总是忽略我的模板文件夹中的html模板.

我正在python manage.py makemessages -a从项目根目录运行,并且项目中任何位置的.py文件中标记为要进行转换的所有字符串都已成功添加到.po文件中.

html模板中的任何字符串,{{ trans "String_to_translate" }}即被忽略,并且不会添加到.po文件中,即使模板顶部加载了必要的模块,{% load i18n %}.

为了测试整个模板文件夹从makemessages函数中排除的可能性,我制作了一个.py文件,并在那里包含了一个用于翻译的字符串,并且它已成功添加到.po文件中.

尽管如此,有谁知道可能导致这个问题的原因是什么?在此先感谢您的帮助!

编辑:解决方案仅包括更改{{ trans "string" }}to 的语法{% trans "string" %}

python django localization internationalization

7
推荐指数
1
解决办法
3209
查看次数

如何在Bash中测试命令的非零退出状态?

我有一个脚本,检查以下功能的退出状态:

function is_git_repository {                                                    
    git branch &> /dev/null                                                     
}  
Run Code Online (Sandbox Code Playgroud)

0如果您使用的是git仓库,那么会返回,128如果您不是.

我测试返回值是否有问题0; 以下按预期工作:

if is_git_repository ; then 
    echo you are in a git repo
else 
    echo you are NOT in a git repo
fi
Run Code Online (Sandbox Code Playgroud)

但是,当我试图测试退出状态时,除了0我遇到问题时,这是其他任何事情.我尝试了以下,但没有一个工作:

  1. if [[ "$(is_git_repository)" != "0" ]] ; ...总是评估为真(链接)
  2. if [[ "$(is_git_repository)" -ne "0" ]] ; ... 总是评估为假
  3. if [[ "$(is_git_repository)" != 0 ]] ; ... 总是评估为真
  4. if [[ "$(is_git_repository)" -ne 0 ]] ; ... 总是评估为假
  5. if …

bash shell if-statement exit-code

7
推荐指数
2
解决办法
8096
查看次数

xclip 在 Ubuntu VirtualBox VM 的 tmux 会话中给出“错误:无法打开显示:本地主机:10.0”

我试图在我的 Ubuntu VirtualBox VM 的 tmux 会话中使用 xclip 进行一些复制/粘贴键绑定,但一直收到相同的错误消息。

我的主机上安装了 XQuartz:

ysim:~$ which xquartz
/opt/X11/bin/xquartz
ysim:~$ echo $DISPLAY
/tmp/launch-N0023n/org.macosforge.xquartz:0
Run Code Online (Sandbox Code Playgroud)

我已经ForwardX11 yes设置~/.ssh/config

Host vm
ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)

在我的虚拟机中,也在/etc/ssh/sshd_config

X11Forwarding yes
Run Code Online (Sandbox Code Playgroud)

当我在我的虚拟机中 ssh 时,当我不在tmux 会话中时,xclip 工作正常:

$ echo hello | xclip
$ xclip -o
hello
Run Code Online (Sandbox Code Playgroud)

但是当我在一个错误时:

$ echo hello | xclip
Error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

任何想法为什么会这样?

更新:现在似乎只有在我退出 tmux 会话然后创建一个新会话时才会发生。

ssh tmux x11-forwarding xclip

7
推荐指数
1
解决办法
7727
查看次数

为什么AWS不告诉我BucketAlreadyExists?

我正在使用AWS SDK for Python(boto3)自动设置某些AWS服务,并遇到一个非常简单的创建S3存储桶的问题.

我仔细检查过以下内容:

  • ~/.aws/credentials,我有一个访问密钥ID和秘密访问密钥集.
  • 此访问密钥ID /秘密访问密钥用于属于具有以下策略的组的一部分的帐户:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "*",
          "Resource": "*"
        }
      ]
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 没有现有的存储桶,其名称是我正在尝试创建存储桶

然而,当我尝试运行这个非常简单的操作时,它失败了:

>>> import boto3
>>> client = boto3.client('s3')
>>> response = client.create_bucket('staging')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/yiqing/Repos/ansible-home/roles/osx/files/virtualenvs/obaku/lib/python2.7/site-packages/botocore/client.py", line 157, in _api_call
    "%s() only accepts keyword arguments." % py_operation_name)
TypeError: create_bucket() only accepts keyword arguments.
>>> response = client.create_bucket(Bucket='staging')
Traceback (most recent call last):
  File "<stdin>", line …
Run Code Online (Sandbox Code Playgroud)

python amazon-s3 amazon-web-services boto3

7
推荐指数
1
解决办法
4572
查看次数

为什么在SVG中输入/离开子元素时会触发mouseenter/mouseleave事件?

我有一个SVG,其中有更多SVG,其中包含可变数量的rect元素,所有这些都是从数据对象生成的.这是一般的层次结构:

<svg class="parent-svg">
    <svg class="child-svg">
        <rect />
        <rect />
    </svg>
    <svg class="child-svg">
        <rect />
        <rect />
    </svg>
</svg>
Run Code Online (Sandbox Code Playgroud)

我已经将mouseenter/mouseleave事件绑定到.child-svg元素上,但是当我的鼠标转到<rect>元素之间的空白时,我发现事件正在触发.我对mouseenter/mouseleave的理解是,当光标进入/离开子元素时,它们不应该触发 - 这看起来像是鼠标悬停/鼠标移动所期望的行为.当然,我理想的是,当我离开每个部分(我已经使用颜色描绘)时,mouseenter/mouseleave事件才会触发.

这是相关的小提琴:http://jsfiddle.net/ysim/yVfuK/4/

编辑:我尝试给.child-svg元素一个高度和宽度,但这似乎也不起作用:http://jsfiddle.net/ysim/gMXuU/3

编辑:这是解决方案的小提琴,根据@ pornel的建议修正:http://jsfiddle.net/ysim/HUHAQ/

谢谢!

javascript jquery svg mouseenter d3.js

6
推荐指数
1
解决办法
3366
查看次数

如何检查变量是否未设置并在我的bash前奏中使用set -u?

我知道set -u如果引用了任何未绑定的变量,脚本将失败,但在我的bash脚本中,我正在检查是否在if语句中未设置某个变量,然后我尝试对它执行某些操作,如下所示:

if [[ -z "${SOME_VARIABLE}" ]] ; then
    echo '$SOME_VARIABLE' is not set
else
    do_stuff_with_SOME_VARIABLE
fi
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试set -eu在我的前奏中运行上面的内容,我会收到以下错误,考虑到我正在尝试做的事情,这似乎有点违反直觉:

-bash: SOME_VARIABLE: unbound variable

[Process completed]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我实际上并没有尝试$SOME_VARIABLE在它未设置时使用,所以我想知道的是,当我实际上尝试使用未设置的变量时,如果有一些方法可以使脚本失败(比如将它们作为参数或对它们应用字符串操作)但不是在我只是检查它们是否未被设置时?

string variables bash unset

6
推荐指数
1
解决办法
962
查看次数

如何在{%blocktrans%}和{%plural%}标记之间保留空格而不会导致msgfmt错误?

我正在使用blocktrans标签渲染一些复数 ; 这是模板文件中的相关代码段:

{% blocktrans count choice_count=choice_count %}
  You have {{ choice_count }} choice:
{% plural %}
  You have {{ choice_count }} choices:
{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud)

运行后python manage.py makemessages --all,这是我的,如有关片段django.po文件en:

msgid ""                                                                        
"\n"                                                                            
"  You have %(choice_count)s choice:\n"                                         
msgid_plural ""                                                                 
"\n"                                                                            
"  You have %(choice_count)s choices:\n"                                        
msgstr[0] "You have one choices:"                                               
msgstr[1] "You have %(choice_count)s choice(s):"   
Run Code Online (Sandbox Code Playgroud)

但是当我运行时python manage.py compilemessages,这是我收到的错误消息:

$ ./manage.py compilemessages 
processing file django.po in /home/yiqing/repos/training/site/training/locale/en/LC_MESSAGES
/home/yiqing/repos/training/site/training/locale/en/LC_MESSAGES/django.po:60: `msgid' …
Run Code Online (Sandbox Code Playgroud)

django msgfmt plural django-i18n

6
推荐指数
2
解决办法
1043
查看次数

casperjs:评估document.querySelector返回null

我正在使用CasperJS中的waitForSelector()captureSelector()方法等待并使用CSS选择器选择一个元素,然后保存它的截图.

但是,我发现因为css background已设置为transparent,屏幕截图结果非常难看,所以我想设置backgroundwhite.我确信,我使用document.querySelector评估()调用,但似乎并没有工作.

这是我的脚本(您之前可以忽略所有内容casper.start(...,我只是包含了下一个代码片段的上下文的开头部分):

var casper = require("casper").create({
  verbose: true,
  clientScripts: ["libs/jquery-1.10.2.js"]
});
var utils = require("utils");

var requiredOptions = [ 'url', 'selector', 'filename' ];
var missingOptions = new Array();

for (var i = 0 ; i < requiredOptions.length ; i++) {
  var opt =  requiredOptions[i];
  if (!casper.cli.has(opt)) {
    missingOptions.push(opt);
  }
}

if (missingOptions.length > 0) {
  casper.die("\nMissing the following CLI …
Run Code Online (Sandbox Code Playgroud)

javascript dom evaluate phantomjs casperjs

5
推荐指数
1
解决办法
1万
查看次数

使用 Ansible 使用 debconf-set-selections 自动 *just* exim4 配置

我正在尝试在 Ansible 中对 Debian 上的 exim4 配置进行自动化——到目前为止我们一直在手动配置——但我被困在我正常运行的阶段dpkg-reconfigure exim4-config

我可以很容易地自动化这些步骤:

  • 更新conf文件在 /etc/exim4/exim4-config.conf.conf
  • dpkg-reconfigure --frontend noninteractive exim4-config

它们在剧本中运行良好,但问题是并非我在交互式提示中看到的所有选项都在此 conf 文件中。例如,第二个设置System mail name没有在 conf 文件中的任何地方指定。也不是最后一个设置,Root and postmaster mail recipient在第一次配置后也不再显示在交互式提示中(为什么?)

然后我看到有些人建议使用debconf-set-selectionshere),我尝试调查 - 我安装了debconf-utils软件包然后运行debconf-get-selections- 然后我看到了那里的所有选项,但现在我想知道是否有一种方法可以debconf-set-selections不用不必使用文件组所有的一次性设置,因为我只是想改变的话用exim4关联的值。如果我需要再次运行剧本,我试图避免覆盖可能设置的任何其他值(与 exim4 无关)。

除了将 的输出写入debconf-get-selections文件然后使用 Ansible 的lineinfile/template模块替换我想要更改的值之外,是否有更简单的方法来解决这个问题?我宁愿避免这种方法。

debian exim4 configuration-files ansible

5
推荐指数
1
解决办法
1748
查看次数