Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
@Saito
VIP
NO. 243 / 2011-11-24

杭州
43 Topics / 837 Replies
67 Followers
4 Following
0 Favorites
#programmer
GitHub Public Repos
  • linner 275

    HTML5 Application Assembler

  • simba 78

    ruby off rails best practice.

  • fireup 32

    Deploy your ruby/rails code with fireup.

  • grack 17

    GIt Smart HTTP Server Rack Implementation

  • grit_ext 9

    extension for grit

  • dotfiles 7

    some dotfiles

  • rseg 6

    A Chinese Word Segmentation(中文分词) routine in pure Ruby

  • state-machine 4

    based on java signals.

  • saitowu.github.com 3

    personal page

  • gitlabhq 2

    Project management and code hosting application. Follow us on twitter @gitlabhq

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • Rack::Session::Pool 怎么使用? at September 27, 2012

    #3 楼 @royisme 直接用 'sinatra/reloader' shotgun 现在还有人用么?

  • Rack::Session::Pool 怎么使用? at September 27, 2012

    Rack::Session::Pool with Sinatra http://stackoverflow.com/questions/3339761/racksessionpool-with-sinatra

  • 想问下大家对 datamapper 和 sequel 之间如何选择? at September 24, 2012

    #3 楼 @royisme 都挺快的吧。

  • 想问下大家对 datamapper 和 sequel 之间如何选择? at September 24, 2012

    监控系统 mongodb 吧。

    这两个的话我喜欢 data-mapper. 我一直在等 data-mapper 2.. 准备给 simba 升级。

  • 问个关于 Sublime Text 2 的小白问题…… at September 24, 2012

    无责任解答:改成 .erb.html

  • Sinatra 的 helpers 问题 at September 24, 2012

    #12 楼 @royisme 哇,比我还要久.. 我也就是罗尼开始的。97 年。

  • Sinatra 的 helpers 问题 at September 24, 2012

    #10 楼 @royisme cool!!! 现在日风日下..能碰到支持统一球队的太难了。

  • Sinatra 的 helpers 问题 at September 24, 2012

    #8 楼 @royisme Application 是 Base 的 subclass. 所以是一样的。

  • Sinatra 的 helpers 问题 at September 24, 2012

    #5 楼 @royisme http://ruby-china.org/topics/2110 < 看这里。

  • Sinatra 的 helpers 问题 at September 24, 2012

    classic 模式是不需要 helpers 的。

    modular < Sinatra::Application 是需要的。

  • SQL 通配符真的很糟糕么 at September 24, 2012

    #25 楼 @quakewang 横批:查暂住证

  • Dash - 统一下载浏览技术文档 at September 20, 2012

    #6 楼 @raecoo 不是免费,是内购了。

  • 绝大多数人都是有其他 web 开发背景的吧,感觉之前没有经验学习 Rails 特吃力 at September 17, 2012

    #7 楼 @fsword 话说这个是 花花公子 提出来的。不是我... 可以去鸡眼找相关文档。

  • 讨论一个设计方案 at September 14, 2012

    #19 楼 @fsword 你这个都用 puma 了。说明你已经把 rails 的线程模式打开了。要不然你用 puma 也还是同时只能有一个响应。

    如果出问题,那早就出问题了。不会因为你这个 thread 出什么别的问题。

  • 讨论一个设计方案 at September 14, 2012

    既然都用 puma 了。直接 Thread.new 跑也没问题吧。或者自己声明一个线程池。就不需要载入环境多次了。

    Java 多年没这个东西不也过来了么。

  • 请教一个问题, 如何获取当前 index area 的 哈希 (SHA1 值) at September 14, 2012

    写了也算不短的内容,顺便将内容贴到 blog 里面了。http://saito.im/note/Git-Internals/

  • 请教一个问题, 如何获取当前 index area 的 哈希 (SHA1 值) at September 14, 2012

    Git 一共有 4 种 SHA1. tag, commit, tree, blob. 每一种 SHA1 其实也代表了 Git 内部的一个基本对象。

    稍微解释一下就知道了。

    如果做下面的简单操作:

    mkdir helloworld
    cd helloworld
    git init
    echo hello world > readme.md
    git add .
    git commit -am"add readme.md"
    

    在这里看来?哪一步会创建哪些对象?

    答案很简单。

    git add .
    

    在这里操作中会添加一个 blob 对象,代表 readme 文件本身。这也是为什么你需要在 add 过一个对象之后,撤销需要执行 rm 与 cache 相关命令的原因。

    blob

    而文件的内容则如下所示。

    helloworld git:master ❯ git ls-files -s readme.md 
    100644 3b18e512dba79e4c8300dd08aeb37f8e728b8dad 0   readme.md
    helloworld git:master ❯ git show 3b18e512dba79
    hello world
    

    tree

    当执行下面这句的时候:

    git commit -am"add readme.md"
    

    这一步中将创建两个对象,一个是当前 work tree 的映射 tree 对象,还有一个就是 commit 对象。

    tree 对象是可以包含另外的 tree 以及 blob 的。

    helloworld git:master ❯ git show 7394b8cc9ca                                      
    tree 7394b8cc9ca
    
    readme.md
    helloworld git:master ❯ git cat-file -p 7394b8cc9ca                                                                           
    100644 blob 3b18e512dba79e4c8300dd08aeb37f8e728b8dad    readme.md
    

    上面是一个 tree 对象的具体内容。tree 里面实际上就是描述了当前 tree 的内容以及 blob 的引用。

    commit

    同理 commit 也可以用相同的方式查看:

    helloworld git:master ❯ git show 84073a0
    commit 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
    Author: Saito <[email protected]>
    Date:   Fri Sep 14 01:12:07 2012 +0800
    
        add readme
    
    diff --git a/readme.md b/readme.md
    new file mode 100644
    index 0000000..3b18e51
    --- /dev/null
    +++ b/readme.md
    @@ -0,0 +1 @@
    +hello world
    helloworld git:master ❯ git cat-file -p 84073a0                                                                               
    tree 7394b8cc9ca916312a79ce8078c34b49b1617718
    author Saito <[email protected]> 1347556327 +0800
    committer Saito <[email protected]> 1347556327 +0800
    
    add readme
    

    可以看到,commit 里面实际上保存的实际上是一个 tree 的 SHA1 以及 commit 的 author commiter 以及最终的 commit message.

    tag

    最后我们给当前状态打一个 1.0 版本的 tag.

    helloworld git:master ❯ git tag 1.0 -m"create a tag"
    

    再来看看 tag 的 SHA1 内容。

    helloworld git:master ❯ git show 1518c0a02530b3                                   
    tag 1.0
    Tagger: Saito <[email protected]>
    Date:   Fri Sep 14 01:24:39 2012 +0800
    
    create a tag
    
    commit 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
    Author: Saito <[email protected]>
    Date:   Fri Sep 14 01:12:07 2012 +0800
    
        add readme
    
    diff --git a/readme.md b/readme.md
    new file mode 100644
    index 0000000..3b18e51
    --- /dev/null
    +++ b/readme.md
    @@ -0,0 +1 @@
    +hello world
    helloworld git:master ❯ git cat-file -p 1518c0a02530b3
    object 84073a0bffd4c80598dbc4941a5f84d78cc2adcd
    type commit
    tag 1.0
    tagger Saito <[email protected]> Fri Sep 14 01:24:39 2012 +0800
    
    create a tag
    

    可以看到,tag 里面主要存储的是 commit 的 SHA1 值,tag name 以及 tagger, 还有,如果有 -m 参数的话会有 tag message.

    为什么没有 branch

    因为 branch 不在这套体制内。是体制外的。

    跟基本对象相关的东西都存在 .git/objects 里面。

    而 branch 是在同级的 .git/refs 目录里面的。而 refs 目录里面,每条 ref 记录,实际上 也是只 记录了一个 commit SHA1 而已。

    结论

    四种对象创建完毕.. 回头再来看,什么时候会有什么 SHA1 已经很清楚的。

    回到最初的问题。有没有办法能拿到 tree SHA1. 答案是没有。

    没 commit 当然也不能拿到 commit SHA1.

    当然也不是 tag. 所以不能拿 tag SHA1.

    YES!. 你可以拿到当前修改过并且已经被 add 过的 blob 的 SHA1 git ls-files -s readme.md .

    就是这样。

  • ruby 向上键怎么表示 at September 07, 2012

    "向上键"

  •  升级 xcode 后,造成某些 gem 无法编译通过 at September 06, 2012

    直接 ln 这两个,现在还没出过问题。不需要特殊安装什么 apple-gcc42.

    /usr/bin/gcc-4.2 -> llvm-gcc-4.2
    /usr/bin/g++-4.2 -> /usr/bin/llvm-g++-4.2
    
  • 构建全能型 Rails 开发环境。Vagrant+virtaulbox ,使用 Windows 的开发者有福了。 at September 06, 2012

    https://github.com/SaitoWu/fireup << 跟我的 fireup 是一个目的。

  • [算法讨论] 有关`迭代器' 与 `递归' 的替换. at September 05, 2012

    YES, NO

  • 网传 Oracle 可能闭源 MySQL, 我们做何选择 at September 05, 2012

    postgresql

  • 机械键盘 HKKB Pro 2 vs Others? at September 05, 2012

    #24 楼 @lilu 不喜欢白色么?我挺喜欢白色的 ( 有刻无刻都喜欢。

  • 香港服务器 at September 04, 2012

    #7 楼 @kgen inbound transfer 免费。绝好的下载机..

    只是需要知道带宽的问题。我觉得可以搞... 等事主现身说法一下。

  • 香港服务器 at September 04, 2012

    #4 楼 @kgen +1. 有冲动想买。

  • 机械键盘 HKKB Pro 2 vs Others? at September 04, 2012

    #4 楼 @lilu 键程稍微短了一点点~ 其实我也没用过。眼馋而已。

  • 机械键盘 HKKB Pro 2 vs Others? at September 04, 2012

    HHKB Type-S..

  • Mac 无线总掉线,求解! at September 04, 2012

    休眠就是会掉线。

    如果你不想让它休眠的话,用 Caffeine 让屏幕一直亮着就好了。

  • 37signals 的慢公司理念:用人不是竭泽而渔 at September 03, 2012

    #4 楼 @ywencn 终于找到理论基石了。. 大的软件公司最终都变成了劳动密集型。

    所以造就了 工资低,流动率高。且要选择易于培训的语言,高手菜鸟写出来差不多的程序。

  • 如何在 php 中调用 rvm 环境 at September 03, 2012

    env -i 如果启动 php 的 user 跟 rvm 的 user 是同一个的话。

    不然的话。sudo -u $user

  • Prev
  • 1
  • 2
  • …
  • 14
  • 15
  • 16
  • 17
  • 18
  • …
  • 27
  • 28
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English