小编Law*_*den的帖子

如何将不同的本地Git分支推送到Heroku/master

Heroku有一个忽略所有分支但是"主人"的政策.

虽然我确信Heroku的设计师有很好的理由来制定这个政策(我猜测存储和性能优化),但作为开发人员,我的后果是无论我在做什么本地主题分支,我都想要一个简单的方法将Heroku的主人切换到该本地主题分支并执行"git push heroku -f"以覆盖Heroku上的master.

我从阅读http://progit.org/book/ch9-5.html的"Pushing Refspecs"部分得到的是

git push -f heroku local-topic-branch:refs/heads/master

我真正喜欢的是一种在配置文件中设置它的方法,以便"git push heroku"始终执行上述操作,将local-topic-branch替换为我当前分支的名称.如果有人知道如何做到这一点,请告诉我!

当然,需要注意的是,如果我是唯一可以推送到Heroku应用程序/存储库的人,那么这只是明智的.测试或QA团队可能会管理这样的存储库来尝试不同的候选分支,但是他们必须进行协调,以便他们在任何特定的日子都同意他们推动的分支.

毋庸置疑,拥有一个单独的远程存储库(如GitHub)也是一个非常好的主意,没有这个限制来支持所有内容.我称之为"原点"并使用"heroku"用于Heroku,以便"git push"始终将所有内容备份到源,并且"git push heroku"将我当前所有的分支推送到Heroku的主分支,覆盖它如有必要.

这会有用吗?

[remote "heroku"]
    url = git@heroku.com:my-app.git
    push = +refs/heads/*:refs/heads/master

在开始实验之前,我想听听更有经验的人,虽然我想我可以在Heroku上创建一个虚拟应用程序并进行实验.

至于提取,我真的不在乎Heroku存储库是否是只写的.我还有一个单独的存储库,比如GitHub,用于备份和克隆我的所有工作.

脚注:这个问题与使用Heroku的分支策略的Good Git部署类似,但不完全相同

git push github heroku git-push

384
推荐指数
7
解决办法
12万
查看次数

Chrome Developer Window中的"待定"含义是什么意思?

Google Chrome开发者窗口的" 网络 "标签中的状态列下的" 待处理 "是什么意思?

当我的页面脚本发出GET请求时,会发生这种情况,该请求的响应包含用于下载CSV文件的内容标题:

Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv
Run Code Online (Sandbox Code Playgroud)

这在FF和IE7中工作正常,按预期下载CSV文件并打开文件选择器以保存文件,但Chrome不执行任何操作.我确认服务器会响应请求,因此Chrome似乎无法处理响应.

奇怪的是,如果我在Chromes地址栏中键入URL并点击,则所有工作都按预期工作.

仅供参考:Win-XP上的Chrome 10.0.648.204

google-chrome http

97
推荐指数
4
解决办法
9万
查看次数

PG :: ConnectionBad:fe_sendauth:没有提供密码

当我尝试在本地postgres数据库上运行"rake test"时,它会抛出上述异常.

这是我的pg_hba.conf文件:#Unix域名套接字本地所有postgres peer的数据库管理登录

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             username                                  peer
local   myapp_dev   myapp                               md5
local   myapp_test  myapp                               md5
local   myapp_prod  myapp                               md5
#local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            md5 …
Run Code Online (Sandbox Code Playgroud)

authentication postgresql ruby-on-rails

44
推荐指数
3
解决办法
6万
查看次数

在Sinatra中使用Rack :: CommonLogger

我有一个与Sinatra一起编写的小型Web服务器.我希望能够将消息记录到日志文件中.我通过http://www.sinatrarb.com/api/index.html和www.sinatrarb.com/intro.html 阅读,我看到Rack有一个名为Rack :: CommonLogger的东西,但我找不到如何访问和用于记录消息的任何示例.我的应用程序很简单所以我把它写成顶级DSL,但我可以切换到从SinatraBase继承它,如果这是所需要的一部分.

ruby logging rack error-logging sinatra

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

如何在处理完所有其他事件后运行代码

我有一个事件处理程序,但我想确保它将等到事件队列中的所有其他事件都已执行.

例如,我在页面上有一些标签.我有一些处理选项卡的通用代码,当用户点击它时,将选项卡设置为"活动选项卡".

$('a.tab').click(function() {
  $(this).parent('div').find('a.tab').removeClass('activeTab');
  $(this).addClass('activeTab');
});
Run Code Online (Sandbox Code Playgroud)

对于一组特定的选项卡,我可能有一个处理程序:

// handler-1
$('div#myTabs a.tab').click(function() {
  do_something();
});

function do_something() {
  var type = $('div#myTabs a.activeTab').data('type');
  do_something_else(type);
}
Run Code Online (Sandbox Code Playgroud)

除了单击选项卡之外,do_something()可能会响应其他操作而被调用,但无论如何调用它,它都希望知道活动选项卡在继续之前是什么.

我的问题是如果它被'// handler-1'下的代码调用,那么类'activeTab'可能还没有被重置,所以它为'type'检索的值仍然来自于选择的任何标记在点击这个之前.

我这样解决了:

// handler-1
$('div#myTabs a.tab').click(function() {
  set_timeout( function() {
    do_something();
  }, 100);
});
Run Code Online (Sandbox Code Playgroud)

这看起来像是满足我的过多的kludge.我怎么知道只有在所有其他处理程序轮到他们之后才会调用计时器事件处理程序?当然我可以将"100"更改为"1000"甚至"10000"但我也会更加确定地交易性能(并且仍然没有确定性,因为在机器上的浏览器实例上甚至10秒可能还不够残缺不全).

我见过几种可能的解决方案:

但这些都不足以让我满意.我没有试图让处理器运行第一.相反,我想要这样的事情:

function do_something() {
  $.when_all_other_events_have_been_handled(function() {
    do_something();
  });
});
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

我看了$ .fn.when(arg).done(),但什么时候?在这种情况下,"arg"必须是一个延迟对象,它执行运行队列中已有的任何内容.一个Catch-22!

Sproutcore有类似"engine.run()"(不记得确切名称)的东西,只有当"引擎"中的所有其他事件都被处理后才会返回,但我在jQuery中找不到类似的东西.(http://api.jquery.com/category/events/).如果有人知道这样的话,请告诉我!

谢谢!:)

jquery

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

如何使用git rebase来清理复杂的历史记录

在我的笔记本电脑和工作以及家里的桌面上工作了几个星期与六个不同的分支和合并之后,我的历史变得有点复杂.例如,我只是进行了一次获取,然后将origin与origin/master合并.现在,当我做git show-branches时,输出如下所示:

! [login] Changed domain name.
 ! [master] Merge remote branch 'origin/master'
  ! [migrate-1.9] Migrating to 1.9.1 on Heroku
   ! [rebase-master] Merge remote branch 'origin/master'
----
 - - [master] Merge remote branch 'origin/master'
 + + [master^2] A bit of re-arranging and cleanup.
 - - [master^2^] Merge branch 'rpx-login'
 + + [master^2^^2] Commented out some debug logging.
 + + [master^2^^2^] Monkey-patched Rack::Request#ip
 + + [master^2^^2~2] dump each request to log
....

我想用git rebase清理它.为此目的,我创建了一个新的分支,rebase-master,并在这个分支上尝试了git rebase <common-ancestor>.但是,我必须解决许多冲突,并且分支rebase-master上的最终结果不再匹配master上的相应版本,该版本已经过测试并且可以工作!

我以为我在某个地方看到了这个解决方案,但再也找不到了.有谁知道如何做到这一点?或者,当我开始删除已经合并的不需要的分支时,这些错综复杂的引用名称是否会消失?

我是这个项目的唯一开发者,所以没有其他人会受到影响.

git merge rebase

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

如何告诉CPAN有关路径和cc

使用opencsw.org软件包在Solaris上运行Perl 5.10 CPAN,来自软件包的Makefile.PL无法找到正确的路径和cc(gcc).

我找到了制作路径并将其设置为gmake,但我找不到cc的任何设置.

我以为我曾经在CPAN/Config.pm中设置了这个(或者使用o config ...),但是再也找不到任何设置,并且没有足够的耐心来跋涉丛林来弄清楚这样的基本事物设置在哪里.

有人知道吗?

perl cpan solaris-10

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

如何在提交文件之前查看文件的索引版本?

我刚刚执行过git add --interactive,所以某些文件的索引版本与工作目录版本不同.git diff --cached我想要实际转储索引中每个文件的内容,而不是这样做,但我找不到执行此操作的命令.我认为会有类似的东西git show INDEX:filename...,但"INDEX"不是有效的对象名称.

git ls --cached那时我能够做到,git show <hash>但是应该有一种更简单的方法来查看你提交的内容.

git

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

使用脚本将正则表达式替换全局应用于许多文件

我想将一个正则表达式替换全局应用于目录中和目录下的大约40个Javascript文件.我是一个vim的用户,但手工做这可能是乏味且容易出错,所以我想将它与脚本自动化.

我试过SED,但每次处理一个以上的线是尴尬,尤其是如果没有限制多少行的模式可能匹配.

我也试过这个脚本(在一个文件上,用于测试):

ex $1 <<EOF
gs/,\(\_\s*[\]})]\)/\1/
EOF
Run Code Online (Sandbox Code Playgroud)

图案将消除任何的Perl/Ruby的样式列表的后逗号,使"[A,B,C,]"将在次序出来为"[A,B,C]",以满足Internet Explorer中,其中单独在浏览器中,这些列表上的扼流圈.

该模式在vim中运行得非常漂亮,但如果我在ex中运行它,则根据上面的脚本无效.

谁能看到我可能会失踪的东西?

regex vim scripting replace

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

ls-remote报告以"^ {}"结尾的幻像标签

以"^ {}"结尾的标签是什么?它们实际上并不存在于裸存储库中.

$ git ls-remote -t origin
55f09717db93733b8f151763e7e28628f3f22129        refs/tags/Init
dce13158fff0e95b8adcc5628f193a8c03bada9c        refs/tags/Init^{}
2c9f64c306aa76e5b689bc2ffb41163aa255ac40        refs/tags/kaos-red
0970feca84d87df60ec5e943da2f55f1947fd0a3        refs/tags/legacy
dce13158fff0e95b8adcc5628f193a8c03bada9c        refs/tags/legacy^{}
Run Code Online (Sandbox Code Playgroud)

当我尝试用"git push:legacy ^ {}"删除它们时,git会响应

fatal: remote part of refspec is not a valid name in :Init^{}
Run Code Online (Sandbox Code Playgroud)

那他们来自哪里?这是ls-remote中的错误吗?

git

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