小编Ada*_*ers的帖子

git是否在提交对象中存储差异信息?

根据这个:

值得注意的是,这与您可能熟悉的大多数SCM系统有很大不同.Subversion,CVS,Perforce,Mercurial等都使用Delta Storage系统 - 它们存储一个提交和下一个提交之间的差异.Git不会这样做 - 它会在每次提交时存储项目中所有文件在此树结构中的外观.这是使用Git时要理解的一个非常重要的概念.

然而,当我跑git show $SHA1ofCommitObject...

commit 4405aa474fff8247607d0bf599e054173da84113
Author: Joe Smoe <joe.smoe@example.com>
Date:   Tue May 1 08:48:21 2012 -0500

    First commit

diff --git a/index.html b/index.html
new file mode 100644
index 0000000..de8b69b
--- /dev/null
+++ b/index.html
@@ -0,0 +1 @@
+<h1>Hello World!</h1>
diff --git a/interests/chess.html b/interests/chess.html
new file mode 100644
index 0000000..e5be7dd
--- /dev/null
+++ b/interests/chess.html
@@ -0,0 +1 @@
+Did you see on Slashdot that King's Gambit accepted is solved! <a href="http://game …
Run Code Online (Sandbox Code Playgroud)

git diff

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

WordPress默认窗口小部件文件或功能位于何处?

我正在尝试稍微修改默认的WordPress标签云小部件.我不想创建自己的小部件,因为我真的想调整一个小东西.我查看了我的WordPress安装,但找不到包含基本小部件的PHP文件.

即使我假设它们是在每个主题中定义的,我仍然看着核心目录,但空手而归.

所以,如果你们中的任何人碰巧已经想到这一点,请让我的生活更轻松,让我知道我在哪里可以找到默认的小部件...最重要的是标签云小部件.

谢谢

tags wordpress widget

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

ediff合并可以同时显示祖先,A,B和合并缓冲区吗?

我是一个顽固的emacs用户,但到目前为止一直用于kdiff3与祖先的三向合并,例如在表演时git merge或rebase.我真的很喜欢kdiff3不仅可以同时显示正在合并的文本的所有四个版本的方式:

  • 共同的祖先(缓冲区A in kdiff3)
  • "我们的"又名"本地"(缓冲区B in kdiff3)
  • "他们的"又名"远程"(缓冲区C in kdiff3)
  • 合并结果或目标

但也可以通过颜色突出显示A,B和C之间的差异.然而,与合并缓冲区的文本编辑kdiff3相比,毫不奇怪emacs,因为kdiff3它不是一个完整的文本编辑器.它也没有开箱即用的优秀magit包装.所以我想切换到使用ediff解决这一冲突时,特别是方案(我已经成功地使用ediff于其他使用案例多年).

但是,尽管阅读了ediff手册和EmacsWiki页面,并询问#emacsIRC,我找不到同时显示所有4个缓冲区的方法.默认情况下显示:

  • "我们的"又称"本地"(标记为缓冲区A)
  • "他们的"又名"远程"(标记为缓冲区B)
  • 合并结果或目标(标记为缓冲区C)

按下/切换显示合并结果缓冲区(C)的窗口,以便显示祖先缓冲区,但您无法同时看到祖先和合并结果.(此外,祖先缓冲区中的差异以单一颜色突出显示,但没有清楚地显示哪些位与其他两个可见缓冲区(A和B)不同,尽管根据此线程,似乎不幸的是祖先差异细化还没有还没有实现.)

是否有一种简单的方法来配置 …

emacs diff merge kdiff3 emacs-ediff

19
推荐指数
1
解决办法
1570
查看次数

如何将命令行参数传递给使用open命令运行的程序?

有没有办法将参数传递给正在运行的程序:

open -a /Applications/Utilities/Terminal.app ~/my_executable
Run Code Online (Sandbox Code Playgroud)

我试过了:

open -a /Applications/Utilities/Terminal.app ~/my_executable arg1 arg2
Run Code Online (Sandbox Code Playgroud)

但这被解释为告诉终端打开 ~/my_executable ~/arg1 ~/arg2.

我试过了:

open -a /Applications/Utilities/Terminal.app '~/my_executable arg1 arg2'
Run Code Online (Sandbox Code Playgroud)

但是它选择了arg1和arg2,好像它们是路径的一部分而不是参数.

我试过了:

open -a /Applications/Utilities/Terminal.app ~/my_executable | xargs arg1 arg2
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

open -a /Applications/Utilities/Terminal.app ~/my_executable --args arg1 arg2
Run Code Online (Sandbox Code Playgroud)

但是使用那个标志,args被传递到终端.

注意

我只允许将参数更改为Terminal.app([]中的部分):

open -a /Applications/Utilities/Terminal.app [~/my_executable arg1 arg2]
Run Code Online (Sandbox Code Playgroud)

macos bash

16
推荐指数
2
解决办法
2万
查看次数

如何在Ruby中修复挂起的popen3?

我使用popen3得到了意想不到的行为,我想用它来运行像工具ala这样的命令cmd < file1 > file2.以下示例挂起,因此stdout done永远不会到达.使用其他cat可能导致悬挂的工具,从而stdin done永远不会达到.我怀疑,我正在缓冲,但我该如何解决这个问题呢?

#!/usr/bin/env ruby

require 'open3'

Open3.popen3("cat") do |stdin, stdout, stderr, wait_thr|
  stdin.puts "foobar"

  puts "stdin done"

  stdout.each_line { |line| puts line }

  puts "stdout done"

  puts wait_thr.value
end

puts "all done"
Run Code Online (Sandbox Code Playgroud)

ruby popen3

14
推荐指数
3
解决办法
7654
查看次数

如何检查已安装的Ruby gem的所有依赖项是否满足?

我必须遗漏一些东西,因为昨晚我惊讶地发现谷歌搜索check gem dependencies和类似没有透露答案.

我基本上是在大致相当于rpm -V- 一个命令将通过我的一些或所有已安装的gems并确保它们的依赖项也已安装.由于gem install默认情况下安装任何依赖宝石,通常这不是必需的; 但是,如果你gem uninstall是一个宝石,并告诉它继续卸载,即使其他宝石依赖于正在卸载的宝石,那么显然你最终会破坏依赖.问题是,如何在不安装/卸载/更新任何宝石的情况下列出那些破坏的依赖项?

涉及Bundler的NB答案对我来说没什么用处,因为我仍然因为各种原因而被困在Rails 2.x上.

ruby verification gem dependencies

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

bundle exec rake assets:预编译失败,带有"意外令牌"

我准备将我的Rails 3.1应用程序部署到生产环境中,因为我正在使用资产管道,所以我需要预编译我的资产.但是,当我尝试这个时,我得到一个显然与编译jQuery有关的错误:

$ bundle exec rake --trace assets:precompile
** Invoke assets:precompile (first_time)
** Execute assets:precompile
/home/adam/.rvm/rubies/ruby-1.9.3-p0/bin/ruby /home/adam/.rvm/gems/ruby-1.9.3-p0@rails-3.1/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets --trace
** Invoke assets:precompile:all (first_time)
** Execute assets:precompile:all
** Invoke assets:precompile:primary (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke tmp:cache:clear (first_time)
** Execute tmp:cache:clear
** Execute assets:precompile:primary
rake aborted!
399: unexpected token at '"/*!\u000a * jQuery JavaScript Library v1.7.1\u000a * http://jquery.com/\u000a *\u000a * Copyright 2011, John Resig\u000a * Dual …
Run Code Online (Sandbox Code Playgroud)

deployment jquery ruby-on-rails web-deployment ruby-on-rails-3.1

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

如何让ruby-prof忽略Ruby核心/标准库/ gem方法?

我是Ruby分析的新手,它似乎ruby-prof是一个受欢迎的选择.我刚刚安装了gem并调用了我的程序:

ruby-prof ./my-prog.rb
Run Code Online (Sandbox Code Playgroud)

但是,输出非常冗长,因为包含了所有Ruby核心和标准库方法以及其他gem的数据分析.例如,前三行是:

8.79      0.011     0.010     0.000     0.001     3343  *String#% 
7.28      0.078     0.009     0.000     0.069     2068  *Array#each 
4.93      0.038     0.006     0.000     0.032     1098  *Array#map 
Run Code Online (Sandbox Code Playgroud)

这对我来说并不是一个非常有用的信息,因为我已经知道我的程序经常处理字符串和数组,并且可能这些类已经对它们进行了优化.我只关心热点我的代码.

我尝试了一些其他的打印机模式,例如-p graph_html和-p call_stack,但他们都有同样的问题.

我看到它ruby-prof支持一些方法消除和简化:

-x, --exclude regexp             exclude methods by regexp (see method elimination)
-X, --exclude-file file          exclude methods by regexp listed in file (see method elimination)
    --exclude-common-cycles      make common iterators like Integer#times appear inlined
    --exclude-common-callbacks   make common callbacks invocations like Integer#times appear
Run Code Online (Sandbox Code Playgroud)

但似乎没有要任何明显的方式得到我真正想要的,这是我的代码分析数据 …

ruby performance profiling ruby-prof

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

在 bash 中干净转储关联数组内容的简单方法?

我可以使用zsh单个命令轻松转储关联数组的内容:

zsh% typeset -A foo
zsh% foo=(a 1 b 2)
zsh% typeset foo
foo=(a 1 b 2 )
Run Code Online (Sandbox Code Playgroud)

然而,尽管搜索高低,我能找到的最好的是declare -p,其输出包含declare -A:

bash$ typeset -A foo
bash$ foo=([a]=1 [b]=2)
bash$ declare -p foo
declare -A foo='([a]="1" [b]="2" )'
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方法来获取类似输出zsh(理想情况下foo=(a 1 b 2 )或foo='([a]="1" [b]="2" )')之类的内容,最好不诉诸字符串操作?

bash associative-array zsh

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

bash将set -x的输出存储到日志文件中

我有一个简单的下载脚本,我用set -x它很好; 我可以看到它执行的每个步骤,我可以识别脚本或下载中的错误:

#!/bin/bash
set -x
#short_date=$(/bin/date +%m%d%y)
short_date=$(/bin/date -d "8 day ago" +%m%d%y)
#long_date=$(/bin/date +%Y%m%d)
long_date=$(/bin/date -d "8 day ago" +%Y%m%d)
scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_$short_date.csv /local/casper3/dailymetrics/BANK_$long_date.csv
Run Code Online (Sandbox Code Playgroud)

我想自动完成这项工作.有没有办法将set -x输出保存到日志文件?也许是一个日志文件 - 或者每天不同的日志文件.我不知道哪种方法效果最好.

以下是set -x上述脚本的示例输出.

++ /bin/date +%m%d%y
+ short_date=102814
++ /bin/date +%Y%m%d
+ long_date=20141028
+ scp -v -P 1332 -i /home/casper/.ssh/id_rsa_BANK friendly@192.168.1.10:/home/friendly/transfer/out/EXCHANGE_102814.csv /local/casper3/dailymetrics/BANK_20141028.csv
Executing: program /usr/bin/ssh host 192.168.1.10, user friendly, command scp -v -f /home/friendly/transfer/out/EXCHANGE_102814.csv
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: …
Run Code Online (Sandbox Code Playgroud)

debugging bash non-interactive output

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

如何调试Ansible包含和依赖项?

我加入了一个拥有大量剧本和角色的项目,并且大量使用include(通常以嵌套方式),以便在现有的剧本/角色中包含剧本/角色.(这是好的还是坏的做法应该被认为超出了这个问题的范围,因为它不是我可以立即改变的.注意也include_role没有使用,因为这些剧本在2.2出局之前写得很好,并且仍在进行中更新.)

通常在运行时 ansible-playbook,输出只显示正在运行的每个任务,但它不显示引入额外任务的包含.这使得整个流程如何在剧本之间跳跃变得困难.相比之下,include_vars任务都包含在输出.我猜这是因为它是一个Ansible模块,而include不是真正的模块.

因此,无需修改剧本,有没有办法运行播放簿,显示以下内容?

  • 当include指令触发时,和
  • (理想情况下)也是包含的确切文件,因为相对路径如何转换为绝对路径并不总是很明显

我已经找到了很多关于调试剧本的各种方法的建议,但没有达到这个目的.如果它还通过meta角色依赖关系显示何时包含角色,则奖励积分!

我知道有一些像ansigenome这样的工具可以对剧本进行静态分析,但我希望能够在playbook运行时输出信息,因为我选择调用任何剧本.

如果目前不可能,那么这是一个合理的功能要求吗?

debugging include ansible

2
推荐指数
1
解决办法
395
查看次数