Если Вы знаете, как далеко назад, можно попробовать что-то как:
# Current branch vs. parent
git diff HEAD^ HEAD
# Current branch, diff between commits 2 and 3 times back
git diff HEAD~3 HEAD~2
Предшествующие фиксации работают что-то вроде этого:
# Parent of HEAD
git show HEAD^1
# Grandparent
git show HEAD^2
существует много способов, которыми можно определить фиксации:
# Great grandparent
git show HEAD~3
См. эта страница для деталей .
Я обновил свои примеры сложной формы для работы с Rails 2.3. См. глубокую ветвь , где приведен пример глубоко вложенных моделей.
git clone git://github.com/ryanb/complex-form-examples.git
cd complex-form-examples
git checkout -b deep origin/deep
rake db:migrate
script/server
Это самое чистое решение, которое я когда-либо видел. Если вы обнаружите какие-либо ошибки или улучшения, пожалуйста, добавьте проблему на GitHub .
Прежде всего, спасибо, Райан, за то, что опубликовал свое решение.
Он очень хорошо работает в двухуровневой форме, но у меня проблемы с использованием его в более глубокой вложенной форме.
Firebug выдает ошибку javascript, если я хочу поместить add_child_link
в другой уже добавленный фрагмент. Похоже, есть ошибка выхода.
Я уже пытался избежать экранирования внутреннего партиала, передав другую опцию методу ссылки, но это почему-то не работает.
def add_child_link(name, f, options)
fields = new_child_fields(f, options)
fields = escape_javascript(fields) unless options[:already_escaping] == true
link_to_function name, %{
var new_object_id = new Date().getTime();
var html = jQuery("#{fields}".replace(/#{options[:index]}/g, new_object_id)).hide();
html.appendTo(jQuery("#{options[:where]}")).show();
}
end
Есть какие-нибудь намеки на это?
С уважением ,
Майк