LINUX.ORG.RU

История изменений

Исправление intelfx, (текущая версия) :

tailgunner

Какие у тебя претензии к индексу тогда?

Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.

Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.

Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.

Возможно, в Mercurial этот индекс хранится только в памяти процесса hg commit --interactive и без вариантов отбрасывается по его завершении, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.

Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.

Исправление intelfx, :

tailgunner

Какие у тебя претензии к индексу тогда?

Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.

Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.

Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.

Возможно, в Mercurial этот индекс хранится только в памяти процесса hg commit --interactive и без вариантов отбрасывается по её завершении, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.

Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.

Исходная версия intelfx, :

tailgunner

Какие у тебя претензии к индексу тогда?

Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.

Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.

Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.

Возможно, в Mercurial этот индекс хранится только в памяти команды hg commit --interactive и без вариантов отбрасывается её завершению, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.

Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.