История изменений
Исправление intelfx, (текущая версия) :
Какие у тебя претензии к индексу тогда?
Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.
Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.
Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.
Возможно, в Mercurial этот индекс хранится только в памяти процесса hg commit --interactive
и без вариантов отбрасывается по его завершении, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.
Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.
Исправление intelfx, :
Какие у тебя претензии к индексу тогда?
Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.
Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.
Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.
Возможно, в Mercurial этот индекс хранится только в памяти процесса hg commit --interactive
и без вариантов отбрасывается по её завершении, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.
Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.
Исходная версия intelfx, :
Какие у тебя претензии к индексу тогда?
Ненужная вещь. То, что ее смогли приспособить для решения нужной задачи, не делает ее саму нужной.
Также и с гитом. Сам по себе индекс не нужен. Коммитить отдельные куски файла можно и без него: hg commit -i так и делает — просто спрашивает, какие куски файла я хочу скоммитить. Но да, мы в гите придумали бесполезную штуку, а потом с её помощью героически решили проблему, которую намного легче и понятнее было решить без неё.
Коммитить отдельные куски файла нельзя без индекса. Индекс, по определению — это хранилище объектов, которые войдут в следующий коммит. Чтобы закоммитить «отдельный кусок файла» (расшифрую: часть изменений файла), необходимо сначала создать частичный патч, потом применить его к исходной версии объекта, потом закоммитить частично изменённый объект. На втором шаге у нас в том или ином виде получается индекс.
Возможно, в Mercurial этот индекс хранится только в памяти команды hg commit --interactive
и без вариантов отбрасывается её завершению, но он там есть. Разница только в том, что в Mercurial он без вариантов эфемерный, а в Git он персистентный и хранится на диске.
Выходит, претензия к Git в том, что он предоставляет больше возможностей, чем нужно tailgunner'у? Так себе претензия.