草庐IT

Git:恢复到以前的提交状态

全部标签

ruby - 检查点并恢复 Ruby 中的堆

Ruby的callcc捕获当前的延续,随后可以调用它来恢复控制,但不能恢复数据。我想捕捉当前的延续以及内存的当前图像。在我看来,捕获堆应该不是很困难;我可以依赖ObjectSpace::each_object和ObjectSpace::dump_all,或Marshal.dump,或简单地Object.clone。但是,我没有看到任何直接的方法来恢复堆。理想情况下,我想遍历object_id->object映射,为每个object_id恢复对象的旧图像(并重新添加object_id如果相应的对象已经被GC'd)。不出所料,没有Ruby级别的API可以让我这样做。我想知道是否有任何我可以

ruby - 没有这样的文件或目录 - git ls-files -- WINDOWS

我正在尝试找到一种将Git添加到Windows路径的方法。每当我尝试从JetBrains简洁的IDE、RubyMine或GitBash本身运行RakeFiles时,我都会收到错误消息,该标题发布在以下位置:Nosuchfileordirectory-gitls-files根据一位开发人员的说法,我需要将Git添加到我的Windows路径中。除了Mac,我还没有找到如何修复此错误的方法。有没有人可以帮助我弄清楚如何使用Windows解决此问题? 最佳答案 右键单击“我的电脑”并选择属性点击高级系统设置点击EnvironmentVari

ruby - Git Bash 给出 sh.exe : ruby: command not found

我在WindowsVistaBusiness上使用GitBash。我正在尝试安装Redmine。基本上在第4步,我需要在安装bundler之前安装RubyGem作为依赖项安装的一部分(http://www.redmine.org/projects/redmine/wiki/RedmineInstall)。我从https://rubygems.org/pages/download下载了ruby​​gems-2.2.2.zip.然后我将文件解压缩到桌面上的一个文件夹中。在GitBash中,我输入了rubysetup.rb,我得到了sh.exe:ruby​​:commandnotfound。

ruby - 从 Mechanize 中删除以前存储的 cookie

有没有一种方法或任何其他方式可以用来删除所有以前存储在Mechanize中的cookie?它记得我已经登录,这对我来说不是一件好事。每次连接到该页面时,我都需要登录。 最佳答案 在类似的东西之后agent=Mechanize.newagent.getSOMEURL您可以使用agent.cookie_jar.clear!删除所有cookie,这样代理的下一个请求将不会发送任何cookie。 关于ruby-从Mechanize中删除以前存储的cookie,我们在StackOverflow上找

ruby - LoadError 通过要求带有 :path or :git 的 gem

我遇到了一个非常奇怪的问题。我在github上fork了一个gem来做一些修改,在我的本地机器上克隆了我的repo,进行了更改并更改了另一个项目的Gemfile以从我的本地存储库中获取gem以进行测试。不幸的是,我在我的ruby​​脚本中需要该gem时遇到LoadError。rvmcurrent=>ruby-1.9.3-p448ruby--version=>ruby1.9.3p448(2013-06-27revision41675)[x86_64-linux]bundle--version=>Bundlerversion1.3.5我的Gemfile的内容:source'http://r

出现错误时的 Ruby/Thor 退出状态

我是Thor(和Ruby)的新手,我正在考虑在构建脚本中使用它,因为据说它可以替代Rake(从而替代Make)。然而,经过短暂的试用,我对它返回的错误状态感到困惑。我快速浏览了wiki,但没有看到任何提及。只有第一个“简单示例”,test.thor:classTest版本号:eruve>thorversionThor0.18.1我尝试了以下,故意错误的命令:eruve>ruby--version;thortest:examplebadarg;echoexitstatus:$?ruby2.0.0p195(2013-05-14revision40734)[x86_64-darwin10.8

ruby-on-rails - 为什么 `rake db:drop` 失败时退出状态为 0,并且不引发错误?

我惊讶地发现,当rakedb:drop(假设是Rails的其他内置raketasks)失败时,bash状态代码为0。$rakedb:dropcouldnotconnecttoserver:ConnectionrefusedIstheserverrunningonhost"localhost"(::1)andacceptingTCP/IPconnectionsonport5432?...$echo$?0也许更令人惊讶的是,当从Rails中调用任务时,它甚至不会引发错误。2.3.0:001>begin2.3.0:002>Rake::Task["db:drop"].invoke2.3.0:0

ruby-on-rails - 如何使用来自 git hook post-receive 的特定 rvm gemset 进行 bundle 安装?

因此,我正在尝试在不使用capistrano的情况下实现类似heroku的部署。为了检查和安装gems,我尝试使用githook并将以下命令放入/hooks/post-receive:bundlecheck||bundleinstall但是当我运行gitpush时,我得到:remote:hooks/post-receive:line20:bundle:commandnotfound.我知道hook可能会从错误的环境中启动命令,并且我必须以某种方式从hook切换rvm环境。我尝试在接收后使用rvmuse1.8.7@rails3但它没有帮助。有什么想法吗? 最佳

git submodule update --init --recursive 父子仓库

.gitmodules:记录子模块信息在父项目新建submodule添加:gitsubmoduleadd 子模块仓库地址  子模块在父模块目录下的存储路径。注意:路径不能以/结尾(会造成修改不生效)、不能是现有工程已有的目录(不能順利Clone)删除:首先删除.gitmodules文件下的对应子模块信息,然后 gitrm–cached 克隆下来的项目有submodule拉取submodule: gitsubmoduleupdate--init--recursive更新submodulegitsubmoduleupdate--remote或者在submodule打开gitbash,然后用gitp

ruby - 如何获取使用 IO.popen 调用的命令的退出状态?

我正在使用IO.popen执行命令并像这样捕获输出:process=IO.popen("sudo-uservice_user-istart_service.sh")do|io|whileline=io.getsline.chomp!process_log_line(line)endend如何捕获*start_service.sh*的退出状态? 最佳答案 您可以通过引用$?捕获通过IO.open()调用的命令的退出状态,只要您关闭了block末尾的管道即可。在上面的例子中,你会这样做:process=IO.popen("sudo-us