我在这里遇到了一个问题:我28s在Git中有一个特定于问题的分支,我在一般develop分支中合并.事实证明我做得太快了,所以我使用git-revert来撤消合并.然而,现在是合并的时候28s了develop,但是git-merge命令看到了原始的合并,并且愉快地宣布一切都很好并且分支已经合并.现在我该怎么做?创建'还原'还原"28s - >开发""提交?似乎不是一个很好的方法,但我现在无法想象任何其他.
树结构是什么样的:

我正在使用capistrano来部署RoR应用程序.代码库位于git存储库中,分支广泛用于开发.Capistrano使用deploy.rb文件进行设置,其中一个是要部署的分支.
我的问题是这样的:比方说,我创建了一个新的分支一个从主.部署文件将引用master分支.我编辑它,所以可以部署A来测试环境.我完成了该功能,并将分支A合并到主服务器中.由于deploy.rb从文件一个是新鲜的,它被合并了,现在deploy.rb在主分支引用一个.是时候再次编辑了.
这是很多看似不必要的手动编辑 - 参数应始终与当前分支名称匹配.最重要的是,每次都很容易忘记编辑设置.
什么是自动化这个过程的最佳方法?
编辑:结果已经完成了我所需要的人:
今天早上我有机会将一个git存储库的一个分支部署到一个临时服务器,但是没有最模糊的想法.通过capistrano源代码快速搜索显示我可以
:branch "branch_name"在部署脚本中使用set .我尝试了它,它的工作原理.然后我想我需要对所有分支进行类似的更改.当然,我是一个懒惰的草皮,并想知道是否有更好的方法.如果您不熟悉git,git branch命令的输出是一个带有星号的分支列表,标记当前在本地计算机上签出的星号.例如:
Run Code Online (Sandbox Code Playgroud)> git branch * drupal_authentication fragment_caching master所以,我想,如果我只是解析输出并搜索标记为当前的分支:
Run Code Online (Sandbox Code Playgroud)set :branch, $1 if `git branch` =~ /\* (\S+)\s/m现在,我可以从单个共享的部署脚本部署本地计算机上当前的任何分支.
使用RSpec测试我的控制器时遇到问题 - response.body调用总是返回一个空字符串.在浏览器中,一切都正确呈现,黄瓜特征测试似乎正确,但RSpec每次都失败.
对响应对象的其他期望,例如response.should render_template('index')传递没有任何问题.
有没有人遇到过这个问题?也许响应html可以通过其他方式获得?
至于版本,Rails 2.1.0,RSpec 1.2.7.
我正在尝试使用Active Model Serializer构建一些Rails模型的JSON表示,其中一些模型嵌入了其他模型.例如,我有Event和Attendees,Event has_and_belongs_to_many Attendees.
class EventSerializer < ActiveModel::Serializer
attributes :name
has_many :attendees, serializer: AttendeeSerializer
end
class AttendeeSerializer < ActiveModel::Serializer
attributes :name
end
Run Code Online (Sandbox Code Playgroud)
这会导致JSON之类的{ name: 'Event One', attendees: [{ name: 'Alice' }, { name: 'Bob' }] }.
现在,我想补充与会者对此次活动所说的内容.让我们说,评论belongs_to事件,belongs_to参加者.我想在事件的序列化输出中包含所述注释,因此它会成为{ name: 'Event One', attendees: [{ name: 'Alice', comments: [{ text: 'Event One was great!'}] }, { name: 'Bob', comments: [] }] }.
我本可以有
class AttendeeSerializer < ActiveModel::Serializer
attributes :name
has_many :comments
end
Run Code Online (Sandbox Code Playgroud)
但这会选择此与会者对所有活动的所有评论 - 而不是我想要的.我想写这个,但是如何找到我正在进行序列化的特定事件?我可以以某种方式访问'父'对象,或者可能将选项传递给has_many序列化程序?
class AttendeeSerializer < …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种在C#中对方法调用进行基准测试的方法.
我已经编写了一个用于大学分配的数据结构,并且想出了一种优化一点的方法,但是在某种情况下会在所有情况下增加一些开销,同时将O(n)调用转换为O(1)在一些.
现在我想针对测试数据运行两个版本,看看是否值得实现优化.我知道在Ruby中,你可以将代码包装在Benchmark块中并让它输出在控制台中执行块所需的时间 - 是否有类似C#的可用内容?
我通过测试遇到了这个问题.假设我有两个模型,User和Post,其中用户has_many:posts.
我试图指出一个包含这样的代码块:
user = User.find(123)
post = user.posts.find(456)
Run Code Online (Sandbox Code Playgroud)
我知道如何模拟User.find和user.posts部分.所述user.posts模拟返回邮对象的数组.当它分开时.find(456),一切都会no block given异常崩溃.
所以我的问题是:作为user.postsmock 的结果我会返回什么,以便该.find(456)方法可以使用它?User.first.posts.class说它是数组,但显然有更多的东西使AR风格的查找调用工作.我对于在返回的对象上模拟find方法的前景并不高兴.
PS在你提出明确而好的答案之前,先停止嘲笑和使用固定装置/使用必要的数据为测试数据库播种,这里是catch:legacy scheme.User和Post都在数据库视图之上工作而不是表,并且更改它以使它们成为测试数据库中的表似乎对我来说是错误的.
在令人不快的意外之后,逗号分隔值(CSV)文件不一定以逗号分隔,我试图找出是否有任何方法可以从http请求检测客户端计算机上的区域设置列表分隔符值.
场景如下:用户可以从网站下载CSV格式的一些数据(RoR,如果重要的话).该CSV文件是即时生成的,发送给用户,并且大部分时间双击并在目的地的Windows机器上的MS Excel中打开.现在,如果用户将','设置为列表分隔符,则数据将按列正确排列,但如果设置了任何其他分隔符(此处广泛使用';'),则只会将其抛入单个列中.那么,有没有办法检测客户端计算机上使用的分隔符,并相应地生成文件?
我有一种下沉的感觉,它不是,但我想确定在我通过'无法完成,对不起'线给客户之前:)
我正在寻找某种"适合初学者的ML"指南 - 谷歌带领我到目前为止一些不起眼的邮件列表或者我的头脑文本.
问题是,到目前为止我没有任何函数式编程经验,并且围绕这些概念的理解比预期的要困难得多.例如,我现在要做的任务(是的,大学:))是在两个列表(a,b)和(c,d)之间进行映射,因此结果是(a,d)的列表)从b = c的对.
我通常会做的是:
result = []
for each x in list1 do
for each y in list2 do
if x.b == y.c result.add (x.a, y.d)
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我甚至无法开始在SML中实现类似的东西.例如,我知道我可以使用嵌套map f list的迭代遍历列表.但是,运行时(SML/NJ)仅对仅将列表元素作为参数的函数接受此操作.但是,如果我只能在两个列表中的某个列表中运行,我怎么知道要返回哪些元素呢?
我迫切需要一种能够解决这类问题的资源,最好是使用大量友好信件和大量代码示例:/
寻找最佳实践建议:
假设我有一个带有limit属性的Account对象.每天可以有n个付款,其金额总和达到帐户限额.创建新付款时,它会检查当天的其他付款金额+金额是否仍在帐户限额内,并保存记录或显示错误.
现在,让我们假设我的帐户限额为100美元,同时创建了两笔99美元的付款.每个人都会做一个选择,看到没有任何东西,并继续保存自己,导致总共保存198美元.
你会怎么做?我在考虑在交易开始时在支付表上发出一个写锁定,但这看起来非常严厉,因为我只是真的关心不允许属于特定账户的付款不被其他交易读取.还有其他选择,更好的处理这种情况的方法吗?
我正在为某些功能编写测试,其中涉及用户按住 Shift 键并单击复选框。我用$('input').trigger($.Event('click', { shiftKey: true }));它来模拟。
但是,当事件侦听器被调用时,event.shiftKey属性总是会被报告为false源自我的合成事件,而真正的点击会产生所需的效果。更令人困惑的是,在非input元素上触发相同的事件似乎工作得很好。例如,请参阅http://jsfiddle.net/huskssk1/ 。
我在浏览器(Chrome 39、OS X)和测试堆栈(Poltergeist 1.5.1 + PhantomJS 1.9.8)中观察到这种行为。
这是什么原因造成的?有什么办法解决吗?
PS我的完整测试堆栈是Ruby on Rails + RSpec + Capybara + Poltergeist + PhantomJS,如果您知道触发shift-click的更好方法,请告诉我!
jquery google-chrome ruby-on-rails poltergeist jquery-events
ruby ×3
git ×2
rspec ×2
activerecord ×1
benchmarking ×1
c# ×1
capistrano ×1
git-merge ×1
git-revert ×1
jquery ×1
json ×1
locking ×1
ml ×1
mocking ×1
mysql ×1
poltergeist ×1
regional ×1
sml ×1
unit-testing ×1