我正在尝试推送不支持Git LFS的第二个遥控器.有没有办法禁用特定远程使用的Git LFS git config?
我目前正致力于将Dart集成到Rails Asset Pipeline中.
编译工作已经开始; .dart文件.js由Asset Pipeline 编译.但是,还应该有一个.dart可以由Dartium解释的未编译版本.
通常的方式是.dart文件包含在html源代码中,其类型为"application/dart".然后是dart.js,如果浏览器不理解Dart,则用.dart相应的.js版本替换这些文件.foo.dartfoo.dart.js
我的问题是,资产管道服务于已编译的JavaScript版本,即使客户端请求也是如此foo.dart.foo.dart应该服务于原始的,未编译的版本,只foo.dart.js应编译.
编辑:我想过只是将原始.dart文件复制到公共文件夹,但这不是一个选项,因为Asset Pipeline看到的源文件可能包含其他.dart文件,然后将这些文件编译成一个.js文件.因此,并非所有.dart文件都会被复制.
我有一个带有API的Ruby on Rails应用程序lib.文件lib自动加载,API在初始化程序中配置.
# lib/my_api.rb
module MyApi
extend Configuration
end
# lib/my_api/configuration.rb
module MyApi
module Configuration
attr_accessor :my_setting
def configure
yield self
end
end
end
# config/initializers/my_api.rb
MyApi.configure do |config|
config.my_setting = 'foo'
end
Run Code Online (Sandbox Code Playgroud)
这适用于生产,但在开发中,API在服务器启动时进行配置.更改一些代码后,配置丢失,并且有错误,因为设置是nil:
irb(main):001:0> MyApi.my_setting
=> "foo"
irb(main):002:0> reload!
Reloading...
=> true
irb(main):003:0> MyApi.my_setting
=> nil
Run Code Online (Sandbox Code Playgroud)
我的猜测是,在开发中,类被重新加载,但初始化程序不是,这意味着它只在启动服务器后才配置一次.
现在我正在复制我的配置lib/my_api.rb,但这非常hacky.
什么是这个问题的干净解决方案?
我有一个带有rescue_from块的轨道控制器,我可以在其中调用render.
class SomeController < ApplicationController
rescue_from Some::Error, :some_error
private
def some_error error
@error = error
render 'error'
end
end
Run Code Online (Sandbox Code Playgroud)
奇怪的是,即使我有一个error.js.erb视图,rails也会一直使用error.html.erb,即使请求是JS:
Started GET /some/1
Processing by SomeController#show as JS
...
Rendered some/error.html.erb
Run Code Online (Sandbox Code Playgroud)
不是如何在它上面的缩短日志中表示它呈现为JS,但它仍然使用HTML文件.该.js.erb是在正确的位置,并呈现JS的看法时,有没有rescue_from涉及的作品就好了.
这里发生了什么?
更新1:我已经创建了一个测试存储库来演示该问题
更新2 我找到了解决方案(见下文).任何人都可以提出一个更通用的解决方案,如下面的那些,或者你能告诉我为什么这将是不可能的或一个非常糟糕的主意?赏金仍然开放.
self.formats在ActionController::Rescue.process_action 或我不小心创建了一个带有--all选项的 git stash ,根据文档,
如果
--all改为使用该选项,则除了未跟踪的文件之外,还会隐藏和清理被忽略的文件。
所以现在恢复我的更改git stash pop失败:
some/ignored/file already exists, no checkout
Could not restore untracked files from stash
Run Code Online (Sandbox Code Playgroud)
(我实际上应该做的是使用--include-untracked)
git stash show -p仍然列出我的更改,没有任何忽略的文件。如何在apply没有 git 尝试恢复被忽略文件的情况下存储我的文件?
编辑:我刚刚创建了一个测试存储库并做了一个git stash --all. 被忽略的文件被隐藏并从文件系统中删除。我的问题是,在我上面的例子中,它们被藏起来了,但没有从文件系统中删除,所以这似乎是问题的原因。