小编equ*_*nt8的帖子

当git重新提交很多提交时如何防止大量的git冲突?

故事:在一个项目的中间,我的同事从大师那里创建了一个新的分支,并开始进行繁重的重新分解工作.我从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之后我们不必再次修复相同的冲突了?

git rebase git-rebase

39
推荐指数
3
解决办法
1万
查看次数

将db/schema.rb放到.gitignore列表中是个好主意吗?

所以我在我的工作中建议将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?

谢谢

migration git ruby-on-rails gitignore

22
推荐指数
1
解决办法
1万
查看次数

RMagick抱怨在OSX中找不到libMagickCore.5.dylib

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

homebrew ruby-on-rails imagemagick carrierwave

17
推荐指数
4
解决办法
8254
查看次数

外部文件中的sinatra助手

我的主要Sinatra project_name.rb中有很多帮助器,我想将它们移到外部文件中,这样做的最佳做法是什么?

来自./preject_name.rb

   helpers do
     ...#bunch of helpers
   end
Run Code Online (Sandbox Code Playgroud)

例如./helpers/something.rb

谢谢

sinatra

15
推荐指数
3
解决办法
8977
查看次数

每当宝石抛出"无法从时间迭代"错误

我正在使用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-on-rails whenever ruby-on-rails-3 ruby-2.0

11
推荐指数
1
解决办法
2074
查看次数

从外部方法调用ruby循环上的next

在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不仅要调用该循环的一部分(=>不抛出:跳过),我能以某种方式告诉我的方法它是从循环中调用的吗?

ruby

11
推荐指数
1
解决办法
2311
查看次数

使用Rake在Bundle范围外执行系统命令

假设我有这个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 …

rake bundler ruby-on-rails-4

10
推荐指数
1
解决办法
957
查看次数

如何使用单个字符串键访问散列的嵌套元素?

我在玩弄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)

有任何想法吗 ?感谢名单

ruby hash

9
推荐指数
1
解决办法
2109
查看次数

什么时候将图像放到app/asssets以及何时放入rails 3.1中的/ public/images?

在这些情况下,我仍然不太明白,将图像放在rails 3.1中的位置:

  1. 图像被处理(通过回形针或蜻蜓)并存储在文件夹中(不是像s3那样的外部服务,开发中的..fe)
  2. 当我有图像时,我会在样式表中使用(fe backrounds)
  3. 图标(AppStore,Facebook ......)

感谢名单

ruby-on-rails ruby-on-rails-3.1

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

在 M1 macbook 上brew install elasticsearch 导致“可执行文件中的 CPU 类型错误”错误

我有一台配备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 应用程序)

有人知道如何解决这个问题吗?

homebrew elasticsearch

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