故事:在一个项目的中间,我的同事从大师那里创建了一个新的分支,并开始进行繁重的重新分解工作.我从master创建了我的分支,并开始在页面上做新的东西.我们经常提交,但只有我可以修改代码才能掌握(因为同事的更改太重,无法从主服务器部署).不幸的是,我们的一些工作依赖于相同的文件.因此,经过几天的工作,她终于想要改变主人的变化,她有很多git冲突.
my_branch #---#----#-#-------#----#--#-----#---#----#----#
/ \ \ \ \ \ \
master *-------*--------------*---*---*--------------*----*----*
\ /
her branch #------#-------#-----------#-----------#------------#
Run Code Online (Sandbox Code Playgroud)
问题1是:当我们处理相同的文件时,如何防止大量的git冲突?(或者在这种情况下最佳做法是什么?)
但这不是我们问题的结束,...绝对正确她试图从主人到她的分支进行变基(为了进行我所做的更改),所以提交映射应该看起来像这样
my_branch #---#----#-#-------#----#--#-----#---#----#----#
/ \ \ \ \ \ \
master *-------*--------------*---*---*--------------*----*----*
\ \ \ /
her branch #------#-------#----*------#-----*-----#------------#
Run Code Online (Sandbox Code Playgroud)
这就是困扰我们的事情.在这些改变期间,她正在解决这些冲突.但是git不记得她关于冲突修复的决定,所以当她从主人到她的分支做另一个git rebase时,她不得不再次修复同样的git冲突,以至于她在以前的rebase 中修复了.
问题2是:如何告诉git在主分支git rebase之后记住git冲突修复,那么在下一个rebase之后我们不必再次修复相同的冲突了?
所以我在我的工作中建议将db/schema.rb放入.gitignore文件,因此我们没有(不时)合并问题.
有些人担心,如果发生了可怕的事情(流星从数据库服务器上的天空掉落,同时所有db/migrete文件都已损坏),我们可能会松开架构,我们将不得不使用rake db:purge(重用) schema.rb).我同意这是可能的,这是一个很好的论据,但它不应该是问题,因为每次我们执行rake db:migrate时都会生成db/schema.rb.因此,即使我们不在服务器上推送schema.rb,我们也在推动迁移添加运行db:migrate每次我们使用数据库更改进行部署时,db:migrate rails将在服务器端自动生成schema.rb,并且schema.rb在服务器上保持不变,直到我们执行另一个db:migrate.
那么你的意见是什么,我们是否应该将db/schema.rb放入git ignore?
谢谢
brew upgrade imagemagick跑完之后,当我跑步的时候,rails s我会得到的
/Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require': dlopen(/Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle, 9): Library not loaded: /usr/local/lib/libMagickCore.5.dylib (LoadError)
Referenced from: /Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle
Reason: image not found - /Users/tomi/.rvm/gems/ruby-2.0.0-p247@ezaaa/gems/rmagick-2.13.2/lib/RMagick2.bundle
Run Code Online (Sandbox Code Playgroud)
我正在使用带有RMagick的Carrierwave gem,OS是OSX Moutain Lion
我的主要Sinatra project_name.rb中有很多帮助器,我想将它们移到外部文件中,这样做的最佳做法是什么?
来自./preject_name.rb
helpers do
...#bunch of helpers
end
Run Code Online (Sandbox Code Playgroud)
例如./helpers/something.rb
谢谢
我正在使用gem来做crone工作,但是当我运行它时:
cd ~/my_project
whenever
Run Code Online (Sandbox Code Playgroud)
我收到错误
/home/tomi/.rvm/gems/ruby-2.0.0-rc1@my_projcet/bundler/gems/rails-d1904aff6f04/activesupport/lib/active_support/core_ext/range/include_range.rb:16:in `each': can't iterate from Time (TypeError)
Run Code Online (Sandbox Code Playgroud)
我在跑
ruby-2.0.0-rc1和rails 3.2.12
在Ruby中,很容易告诉循环转到下一个项目
(1..10).each do |a|
next if a.even?
puts a
end
Run Code Online (Sandbox Code Playgroud)
result =>
1
3
5
7
9
Run Code Online (Sandbox Code Playgroud)
但是如果我需要从循环外部调用next(例如:method)怎么办?
def my_complex_method(item)
next if item.even? # this will obviously fail
end
(1..10).each do |a|
my_complex_method(a)
puts a
end
Run Code Online (Sandbox Code Playgroud)
唯一的解决方案我找到并且工作是在SO问题中使用throw&catch喜欢如何在Ruby中打破外部循环?
def my_complex_method(item)
throw(:skip) if item.even?
end
(1..10).each do |a|
catch(:skip) do
my_complex_method(a)
puts a
end
end
Run Code Online (Sandbox Code Playgroud)
我的问题是:任何人都有更多的琐事解决方案吗?或者throw/catch只是这样做的方法?
另外,如果我my_complex_method不仅要调用该循环的一部分(=>不抛出:跳过),我能以某种方式告诉我的方法它是从循环中调用的吗?
假设我有这个Rake任务:
namespace :db do
namespace :dump do.
desc 'Backup database dump to s3'
task :backup => :environment do
cmd = ['backup', 'perform', '-t project_backup', "-c #{Rails.root.join 'lib', 'backup', 'config.rb'}"]
system(*cmd) # ...I've tried `` & exec() sa well, same thing
end
end
end
Run Code Online (Sandbox Code Playgroud)
备份gem是独立的ruby gem应用程序,其依赖关系需要与应用程序捆绑器隔离.换句话说,它不能成为其中的一部分Gemfile.这个宝石只是安装在上面gem install backup
当我backup通过bash控制台运行命令时,它成功运行:
$ backup perform -t validations_backup -c /home/equivalent/my_project/lib/backup/config.rb
Run Code Online (Sandbox Code Playgroud)
当我执行时,rake db:dump:backup我会得到
backup is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
Run Code Online (Sandbox Code Playgroud)
...当我用bundle execbash …
我在玩弄Ruby而且基本上都是这样
@trans = { :links => {
:quick_notes => "aaaaaaa"
}
}
Run Code Online (Sandbox Code Playgroud)
我想打电话
def t
#...something
end
t('links.quick_notes')
Run Code Online (Sandbox Code Playgroud)
访问
trans[:links][:quick_notes]
Run Code Online (Sandbox Code Playgroud)
我基本上试图实现与使用国际化时相同的功能
I18n.t('something.other.foo')
Run Code Online (Sandbox Code Playgroud)
我想出了这种方法
def t(key)
a=''
key.to_s.split('.').each{|key| a+="[:#{key}]" }
#now a == "[:links][:quick_notes]"
#but I cant figure out how can I call it on @trans variable
end
t('links.quick_notes')
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?感谢名单
在这些情况下,我仍然不太明白,将图像放在rails 3.1中的位置:
感谢名单
我有一台配备M1处理器的新 Macbook Air
按照官方指南https://www.elastic.co/guide/en/elasticsearch/reference/current/brew.html我尝试使用以下命令安装elasticsearch 7:
brew tap elastic/tap
brew install elastic/tap/elasticsearch-full
Run Code Online (Sandbox Code Playgroud)
一旦我尝试启动它,$ elasticsearch就会收到此错误:
/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/bin/elasticsearch-env: line 83: /opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java: Bad CPU type in executable
Run Code Online (Sandbox Code Playgroud)
如果我尝试启动服务,brew services start elastic/tap/elasticsearch-full它将失败,并且我会在日志文件中收到相同的错误/opt/homebrew/var/log/elasticsearch.log
/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/bin/elasticsearch-env: line 83: /opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java: Bad CPU type in executable
Run Code Online (Sandbox Code Playgroud)
elasticsearch-env一旦我打开导致问题的文件 ( ),第 83 行将显示:
# check the Java version
"$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker
Run Code Online (Sandbox Code Playgroud)
如果我尝试执行
/opt/homebrew/Cellar/elasticsearch-full/7.16.2/libexec/jdk.app/Contents/Home/bin/java
Run Code Online (Sandbox Code Playgroud)
我收到错误
Bad CPU type in executable
Run Code Online (Sandbox Code Playgroud)
所以看起来在elasticsearch-fullbrew安装过程中安装了一个糟糕的Java架构(也许不是M1,而是x84或其他什么?)。这是几个小时前买的全新 Macbook。Elasticsearch 是我尝试在其上进行 brew install 的第一件事(因此之前没有安装 Java 应用程序)
有人知道如何解决这个问题吗?
git ×2
homebrew ×2
ruby ×2
bundler ×1
carrierwave ×1
git-rebase ×1
gitignore ×1
hash ×1
imagemagick ×1
migration ×1
rake ×1
rebase ×1
ruby-2.0 ×1
sinatra ×1
whenever ×1