根据这个:
值得注意的是,这与您可能熟悉的大多数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) 我正在尝试稍微修改默认的WordPress标签云小部件.我不想创建自己的小部件,因为我真的想调整一个小东西.我查看了我的WordPress安装,但找不到包含基本小部件的PHP文件.
即使我假设它们是在每个主题中定义的,我仍然看着核心目录,但空手而归.
所以,如果你们中的任何人碰巧已经想到这一点,请让我的生活更轻松,让我知道我在哪里可以找到默认的小部件...最重要的是标签云小部件.
谢谢
我是一个顽固的emacs用户,但到目前为止一直用于kdiff3与祖先的三向合并,例如在表演时git merge或rebase.我真的很喜欢kdiff3不仅可以同时显示正在合并的文本的所有四个版本的方式:
kdiff3)kdiff3)kdiff3)但也可以通过颜色突出显示A,B和C之间的差异.然而,与合并缓冲区的文本编辑kdiff3相比,毫不奇怪emacs,因为kdiff3它不是一个完整的文本编辑器.它也没有开箱即用的优秀magit包装.所以我想切换到使用ediff解决这一冲突时,特别是方案(我已经成功地使用ediff于其他使用案例多年).
但是,尽管阅读了ediff手册和EmacsWiki页面,并询问#emacsIRC,我找不到同时显示所有4个缓冲区的方法.默认情况下显示:
按下/切换显示合并结果缓冲区(C)的窗口,以便显示祖先缓冲区,但您无法同时看到祖先和合并结果.(此外,祖先缓冲区中的差异以单一颜色突出显示,但没有清楚地显示哪些位与其他两个可见缓冲区(A和B)不同,尽管根据此线程,似乎不幸的是祖先差异细化还没有还没有实现.)
是否有一种简单的方法来配置 …
有没有办法将参数传递给正在运行的程序:
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) 我使用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) 我必须遗漏一些东西,因为昨晚我惊讶地发现谷歌搜索check gem dependencies和类似没有透露答案.
我基本上是在大致相当于rpm -V- 一个命令将通过我的一些或所有已安装的gems并确保它们的依赖项也已安装.由于gem install默认情况下安装任何依赖宝石,通常这不是必需的; 但是,如果你gem uninstall是一个宝石,并告诉它继续卸载,即使其他宝石依赖于正在卸载的宝石,那么显然你最终会破坏依赖.问题是,如何在不安装/卸载/更新任何宝石的情况下列出那些破坏的依赖项?
涉及Bundler的NB答案对我来说没什么用处,因为我仍然因为各种原因而被困在Rails 2.x上.
我准备将我的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
我是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)
但似乎没有要任何明显的方式得到我真正想要的,这是我的代码分析数据 …
我可以使用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" )')之类的内容,最好不诉诸字符串操作?
我有一个简单的下载脚本,我用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) 我加入了一个拥有大量剧本和角色的项目,并且大量使用include(通常以嵌套方式),以便在现有的剧本/角色中包含剧本/角色.(这是好的还是坏的做法应该被认为超出了这个问题的范围,因为它不是我可以立即改变的.注意也include_role没有使用,因为这些剧本在2.2出局之前写得很好,并且仍在进行中更新.)
通常在运行时 ansible-playbook,输出只显示正在运行的每个任务,但它不显示引入额外任务的包含.这使得整个流程如何在剧本之间跳跃变得困难.相比之下,include_vars任务都包含在输出.我猜这是因为它是一个Ansible模块,而include不是真正的模块.
因此,无需修改剧本,有没有办法运行播放簿,显示以下内容?
include指令触发时,和我已经找到了很多关于调试剧本的各种方法的建议,但没有达到这个目的.如果它还通过meta角色依赖关系显示何时包含角色,则奖励积分!
我知道有一些像ansigenome这样的工具可以对剧本进行静态分析,但我希望能够在playbook运行时输出信息,因为我选择调用任何剧本.
如果目前不可能,那么这是一个合理的功能要求吗?