progit / progit2-ru

Other
343 stars 137 forks source link

Глоссарий перевода на Русский язык #36

Open DJm00n opened 9 years ago

DJm00n commented 9 years ago

Предлагаю всё же обсудить и принять общие переводы терминов. На данный момент есть:

  1. Глоссарий перевода первого издания книги ProGit и тут.
  2. Глоссарий проекта перевода Git - которому тоже нужна помощь переводчиков.
  3. Глоссарий проекта перевода интерфейса SourceTree for Windows.

За основу предлагаю взять 2й вариант и в случае изменения перевода термина — изменять и там тоже т.к. этот перевод войдет в официальный Git как будет готов.

Возражения/пожелания/идеи?

DJm00n commented 8 years ago

обновил глоссарий: "cherry-pick" -> "копировать коммит" (…в текущую ветку) "revert" -> "обратить изменения" (…коммита)


Конкретно строку "Возврат этого коммита" заменил на "Обратить изменения этого коммита"


Также обновил переводы git/gitk/git-gui. При следующем апдейте запушу. Если еще какие замечания — пишите.

Dobrosvet commented 6 years ago

Люди добрые которые переводили учебник, а скажите почему так трудно новичку в системах контроля версий, понять что такое "коммит"? Почему надо лезть в переводчик и видеть что "commit" это глагол? Потом смотреть на слово "коммит" в учебнике и видеть существительное? Это "что?" или "что сделать?" Почему оно идёт в перемешку со словом фиксация? То есть фиксация это тоже существительное и тоже сложное какое то? Не, что то не так, давайте заново. Наверное "коммит" это всё таки глагол по тому что есть команда "git commit" и она что то делает. А делает она... коммит что ли?... Это как действие "собирать" делает действие "собирать". А зачем же тогда "слепки" о которых говорилось ранее, зачем они вообще если у нас получаются "коммиты", а о слепках дальше одно слово? А вот есть ещё "снимки" может оно... а это тоже самое что "слепок"... "коммит"... "снимок"... Так чё фоткаем или лепим?

А теперь серьёзно. Кому то может смешно, и он попал на материал или знает английский на 100% или ему сообщил коллега, или он в среде программистов и уже ему разжевали что да как. А вот людям начинающим с нуля используя только интернет не на шутку тяжело.

Предлагаю. В вашем обсуждении https://www.linux.org.ru/polls/polls/11129917/ решили что "коммит" это лучший вариант, однако там нет вариантов предлагаемых комментирующими, в частности "закрепить". А именно он, отражает суть функции "git commit", мы закрепляем результат и от него работаем дальше. Это звучит легче и интуитивно понятнее чем "фиксировать". Что получается в результате работы функции? Получается snapshot - снимок или слепок? Снимок опять же интуитивно понятнее чем слепок. Снимок больше ассоциируется со временем и с закреплением момента в памяти и когда мы захотим вернуть воспоминания мы будем смотреть чаще не на слепок, а на снимок. Почему вы гоняете людей почём зря нельзя один раз разобраться и объяснить людям по русски что мы закрепляем результат в виде снимка всего проекта. Вам то может программистам прижилось ваш "коммит", только о новичках вы не подумали.

commit - закрепить snapshot - снимок

Menelion commented 6 years ago

@Dobrosvet, в английском языке многие глаголы звучат и пишутся так же, как и существительные. Так работает язык. Пример из русского: «Добро побеждает зло». Как это ни странно, «зло» здесь может быть не только существительным в винительном падеже, но и наречием (добро побеждает как? зло).
Понятно, что на профессиональном жаргоне все говорят «коммит» (a commit) и «коммитить» (to commit). Но если для «коммитить» есть синонимы (сколь я знаю, «(за)фиксировать» уже устоялось — так говорит мой очень олдскульный коллега, который начинал ещё чуть ли не в семидесятых), то для существительного «коммит» нормального русского слова не придумано. Жаль, но факт.

Dobrosvet commented 6 years ago

@Menelion, хорошо а нам что нужно? Нам нужно понимание английского для изучения Git? Изначально да, так как источник на английском, а после перевода? Английский уже не нужен. И нужно понимание вещей (зачем мы делаем "git commit" и что из него получается). В чём проблема писать то же слово "зафиксировать" или "закрепить", а не "делать коммит", и писать "снимок" вместо "коммит"? Они понятны без переводчика и дополнительных источников.

Menelion commented 6 years ago

@Dobrosvet, мы не можем писать «снимок» вместо «коммит», потому что снимок — это snapshot. В техническом переводе (да и любом специализированном) есть принцип единства соответствия терминологии. Мы не можем называть две вещи одним русским словом, иначе получится чудовищная путаница. Я долго носом рыл этот вопрос, иногда к нему до сих пор возвращаюсь, но пока мой вердикт прежний: для слова «commit» как существительного адекватного перевода на русский нет. Это не единственное такое слово: например, в некоторых языках есть понятие an iterable. На русский это переводят как «итерируемый объект» — длинно и некрасиво, но ничего лучшего нет. Так и тут с коммитом. Может быть, кто-то ещё выскажется.

vlsi commented 6 years ago

писать "снимок" вместо "коммит"? Они понятны без переводчика и дополнительных источников.

Вообще говоря, слово "снимок" не отражает тот факт, что у commit'а есть parent commit. Снимок может отражать смысл "состояние файлов на момент X", но коммит это больше, чем просто состояние файлов.

Вам то может программистам прижилось ваш "коммит", только о новичках вы не подумали

А чего поделать? Вариант "слушай, Вась, у ты во вчерашней фиксации не перепутал названия переменных?" звучит уж очень странно. Ни от кого не слышал такого. "Вась, ты во вчерашнем снимке точно ту функцию вызвал?" -- тоже странно.

Более того, слово "фиксировать" (to commit) созвучно с общеупотребимым "фиксить" (to fix), что может вводить в заблуждение при обсуждении "фиксации" и "фикса".

зачем мы делаем "git commit" и что из него получается

О, точно. Почему же мы делаем git commit, а не мерзавец закрепить --сообщение "..."?

DJm00n commented 6 years ago

@Dobrosvet, да, «закрепить» нормальный вариант…был бы^ если бы уже не существовало устоявшегося термина. Нормальный, не лучше других. Сообщество выбрало устоявшийся вариант (хоть и жаргонизм, но всем понятный). Демократия, все дела.

Dobrosvet commented 6 years ago

@Menelion, так уже путаница... Я понял вас, значит в английской версии идёт только сравнение коммита со снимком и англоговорящие не говорят snapshot, а только commit?

@vlsi, а что мешает подписать сзади снимок сделав ссылку на предыдущий скажем по дате, описанию или по идентификатору написанному на задней стороне?

А чего поделать? Вариант "слушай, Вась, у ты во вчерашней фиксации

По этому я не за фиксацию. "Слушай, Вась ты во вчерашнем снимке не перепутал названия переменных" (смысл, а не перевод)

"Вась, ты во вчерашнем снимке точно ту функцию вызвал?" -- тоже странно. "Вась, ты во вчерашнем коммите точно ту функцию вызвал?"

Сравните два варианта. Человеку который вообще только пришел в программирование, какой вариант будет легче объяснить? Он спросит что такое коммит(у него нет НИКАКИХ ассоциаций), а вы ему скажете что это похоже на снимок кода, (ассоциации: это похоже на фотографию, только кода, момент который не изменить, ...), более того окружающие люди скорее всего поймут что вы говорите не о фотографии а о коде, но почему то говорите про снимки, и у человека всплывут те же ассоциации он хоть что-то поймёт, не знакомый с программированием.

И ничего не странно, отлично звучит. А "коммит" значит изначально для вас не странно?

Более того, слово "фиксировать" (to commit) созвучно с общеупотребимым "фиксить" (to fix), что может вводить в заблуждение при обсуждении "фиксации" и "фикса".

Ну это простите, бред, если бы изначально было "a fix" - исправление, и "to fix" - исправлять. Тогда бы не пришлось их сравнивать. Не говорите фиксить в таком случае, и исправляйте всех от кого это услышите. Уж извините если я и тут не прав я умываю руки, я не понимаю тогда ни людей, ни почему старшее поколение оставило нам столько сложностей, ни как их преодолевать, разбираясь в этой каше.

О, точно. Почему же мы делаем git commit, а не мерзавец закрепить --сообщение "..."?

Я вас понял, но вы не прочитали мой предыдущий комментарий.

есть команда "git commit" и она что то делает. А делает она... коммит

Вот это странно.

@DJm00n, сообщество проголосовало за варианты одного человека. Я не вижу там вариант "закрепить" и других которые предлагали в комментариях, их дополнительно не посчитали (типичная Демократия). Хотя я не сомневаюсь что результат бы изменился. Основной аргумент за "коммит" это, "привык, по этому понятнее, оставьте так", хорошо а что делать тем кто "не привык и не понятно", правильно!, выражусь цитатой @Menelion

Я долго носом рыл этот вопрос, иногда к нему до сих пор возвращаюсь

Нам остаётся рыть носом ошибки предшественников, а не решать руками свои задачи.

"Коммит" и "коммитить" неприемлемые слова и их однозначно нужно заменять. Но я не вижу ни оного голоса поддержки, по этому похоже это останется только моим мнением...

madhead commented 6 years ago

Человеку который вообще только пришел в программирование

Посоветовать потратить часик на расширение словарного запаса. Потом пригодится. Почему всё должно быть удобно вам лично? Вся индустрия использует слова "коммит", "фиксить", и ещё пару сотен, если не тысяч, подобных.

старшее поколение оставило нам столько сложностей

Сложности будут у вас когда вы со своим словарём решите пообщаться с кем-нибудь, скажем, на конференции. Кстати, как вы относитесь к латинскому слову "конференция"? Не лучше ли нам говорить "сборище"? А то как-то ну... знаете... если человек ни разу не был на конференции, не совсем понятно что имеется в виду...

vlsi commented 6 years ago

но почему то говорите про снимки, и у человека всплывут те же ассоциации он хоть что-то поймёт, не знакомый с программированием.

Да в том-то и дело, что человек, далёкий от программирования, простите, не коммитит. Есть определённый пласт инженеров, которым тяжело объяснить "зачем им нужно пользоваться системами типа git/svn". Для них гораздо проще создать файл "схема_2018-01-28.docx", а потом "схема_2018-01-29.docx", и уж точно ни за что не объяснить зачем нужны эти "системы хранения версий". Более того, они и git-то будут использовать максимум в режиме "только на запись". Дали им инструкцию, что нужно "сначала нажимать add, потом commit, потом push", вот они так и будут делать. Даже историю изменений смотреть никто не будет.

Зачастую, работа таких инженеров сопряжена с нетекстовыми средами. Например: Word, Excel, Apache JMeter, Owen Logic. В этом случае, git diff/merge не даёт никаких плюсов. Там бинарные форматы хранения.

Вот и получается, что "далёкие ассоциации" нужны только тем, кто этим самым иснтрументом пользоваться не будет. Да, возможно, есть ненулевое количество тех, кто "не понимает что такое коммит", но при этом "получит реальную пользу от использования git".

А тем, кто разбирается в программировании, проблем понять "кто такой коммит" и чем он отличается "от слепка состояния дерева файлов" никаких нет.

Не хочу никого обижать, но "корявые" переводы "общепринятых" слов крайне и крайне мешают в работе рядового программиста. Вот выше было обсуждение перевода "cherry-pick vs отбор лучшего". Это же дичь какая-то. Я когда увидел "отбор лучшего", то вообще пользоваться не смог. Так и с коммитом. Я не вижу смысла делать "далёкую ассоциацию" для привлечения 10 новых пользователей, и при этом обращения 100500 программистов в шок.

Делать 2 варианта перевода (git-русский-с-заимствованными и git-русский-вообще-без-заимствованных-слов), наверное, было бы совсем странно.

ассоциации: это похоже на фотографию, только кода, момент который не изменить

Тут ваша ассоциация не различает разницу между "состоянием дерева файлов" и "коммитом". Например: можно получить одинаковое состояние файлов, но прийти к этому состоянию совершенно разными путями. В итоге коммиты будут разными (у них будут различаться parent'ы, предыдущая история и т.п.) Ассоциация про "просто снимок" неправильная, и отглагольный вариант образования слова "коммит" мне тут нравится гораздо больше. Иными словами, для меня важной частью смысла является то, что "коммит, это нечто добавленное в репозиторий в результате фиксации изменений"

И ничего не странно, отлично звучит. А "коммит" значит изначально для вас не странно?

Для меня "коммит" в смысле существительного звучит гораздо лучше чем "снимок" (который ассоциируется с разнообразными snapshot'ами файловых систем гораздо больше чем с фотоснимками). Более того, "коммит" как существительное для меня звучит гораздо менее жаргонно, чем "фиксить баги". Вот "коммитить" звучит более жаргонно, и я предпочитаю варианты "зафиксировать изменения" / "вчерашний коммит".

Не говорите фиксить в таком случае, и исправляйте всех от кого это услышите

Простите, но от выражения "баги фиксить" мы вряд ли уйдём, даже если будем стараться искоренить подобное. Я не о том, что нужно стараться "фиксить баги", а о том, что этот жаргон слишком широко распространился.

Dobrosvet commented 6 years ago

Коммит, существительное которое вы имеете в виду, тоже самое что и snapshot в английской версии учебника по смыслу, это одна сущность?

vlsi commented 6 years ago

Коммит, существительное которое вы имеет в виду, тоже самое что и snapshot в английской версии учебника по смыслу, это одна сущность?

Нет, это разные сущности и эти слова имеют разную смысловую окраску. Коммит (сущ) это commit (сущ). Английская версия различает слова snapshot и commit. Например, встречается фраза snapshot of the commit

Или же фраза Git is fundamentally a linked list of commit objects that point to a snapshot of content

Menelion commented 6 years ago

@Dobrosvet, об этом мы вам и пытаемся сказать с Владимиром: commit и snapshot — совершенно разные вещи, поэтому перевод «снимок» для коммита ну никак не подходит. Я полностью поддерживаю Владимира: «зафиксировать изменения», но «вчерашний коммит». Это асимметрия заимствований в языке и это нормально. Мы заимствовали computer, но не заимствовали to compute, например.

Dobrosvet commented 6 years ago

@madhead, вы не поняли, не лично мне.

  1. Значит хранилище(repository) это набор снимков(snapshots).

  2. Каждый снимок это состояние всех файлов в момент времени.

  3. (коммит - нельзя называть снимком по этой причине, по тому что это не состояние файлов в момент времени)

  4. Делая коммит мы делаем снимок, сделать снимок можно только сделав коммит.

  5. Делать коммиты с помощью снимков нельзя, а снимки с помощью коммитов можно.

  6. Делая коммит получаем - новый снимок и коммит

  7. Снимок это список коммитов (которые образуют состояние).

  8. А коммит это НЕ набор разниц в изменённых файлах.

  9. Это сохранённый набор файлов целиком, которые были изменены

  10. (со всем содержимым в том числе которое не изменилось)

  11. (без ссылок на не изменённые файлы так как их хранит снимок)

Что так, что не так?

vlsi commented 6 years ago

Что так, что не так?

Так скажите, каким словом вы собираетесь заменить слово коммит, тогда и поговорим. Попробуйте изложить "аксиомы git" без использования слова коммит.

Например, так: a) Репозиторий состоит из коммитов, веток, тегов, снимков состояния файлов б) "снимок состояния файлов" просто отражает состояние файлов (и их названия), но без учёта того, как к этому состоянию пришли в) коммит ссылается на "снимок состояния файлов" и коммиты выстроены в дерево г) дерево коммитов отражает историю развития проекта д) ветка указывает на какой-то коммит и тем самым она отражает ...

Вот чем вы предлагаете заменить слово коммит?

1 . Значит хранилище(repository) это набор снимков(snapshots).

Это вы так перевели фразу "Git is fundamentally a linked list of commit objects that point to a snapshot of content"? По-моему, более корректный перевод это "Git представляет из себя связный список коммитов, которые указывают на snapshot'ы" (не хочу вдаваться в тонкости перевода слова "snapshot")

2 . Каждый снимок это состояние всех файлов в момент времени. 7 . Снимок это список коммитов (которые образуют состояние).

Т.е. у вас два разных определения для понятия "снимок". В одном (2) это просто содержимое файлов, а в другом (7), это содержимое файлов + то, как к этому состоянию пришли.

6 . Делая коммит получаем - новый снимок и коммит

Отчего же? Как вы назовёте результат выполнения git commit --allow-empty --message "test" ? Тут создаётся новый коммит. Новый снимок -- едва ли. Но я могу ошибаться в том, что вы подразумеваете под словом "снимок".

Пункты 8-11 вообще относятся к деталям реализации, и они не могут (не должны) использоваться для описания базовых понятий. Git может хранить как файл целиком, так и разницу от предыдущей версии в зависимости от того, какая форма более компактна. Для конечного пользователя это скрыто. Поэтому обсуждать "хранит ли snapshot файлы целиком или в виде diff'ов" смысла нет.

Dobrosvet commented 6 years ago

Пункты 2 и 7 считайте одним предложением это одно определение а не 2 разных. Я вообще задал вопрос, а вы отвечаете вопросом, тем более к новичку и просите меня объяснить вам чем я хочу заменить. Ответ "Я хотел заменить на снимок", но @Menelion объяснил что этого сделать нельзя, так как в них разный смысл. Вопрос уже не в том что бы заменить, а что бы понять.

Так скажите, каким словом вы собираетесь заменить слово коммит, тогда и поговорим.

В результате этой беседы уже вроде всем понятно, и уже даже мне понятно, что я не знаю что такое коммит (хотя и делаю их периодически). Так объясните русскими словами что такое коммит что бы я понял что это такое, а потом я вам скажу слово которым его заменить и вот тогда уже и поговорим. Я пытаюсь прочитать учебник и хочу понять в чём смысл. Но там не написано "коммит это - ", там написано

... подход Git’а к хранению данных больше похож на набор снимков миниатюрной файловой системы. Каждый раз, когда вы делаете коммит, то есть сохраняете состояние своего проекта в Git’е, система запоминает, как выглядит каждый файл в этот момент, и сохраняет ссылку на этот снимок. Для увеличения эффективности, если файлы не были изменены, Git не запоминает эти файлы вновь, а только создаёт ссылку на предыдущую версию идентичного файла, который уже сохранён.

Тут есть слово "коммит". "Когда вы делаете коммит" эта фраза абсолютно непонятна, до этого слово никак не определено. А дальше оно вроде как определено после запятой, его определение "состояние", но до этого было

... клиенты не просто скачивают снимок всех файлов (состояние файлов на определённый момент времени) ...

Чувствуете? "коммит - состояние", "снимок - состояние" и получается что "снимок - коммит"

Что такое коммит? Что такое состояние? Что такое снимок? Чем они отличаются? Как они друг к другу относятся? Тут я уже ничего не имею ввиду под снимком, состоянием, коммитом. Я хочу узнать, что нужно иметь ввиду под этими понятиями. Книга этого не даёт, в силу плохого перевода, однако несомненно где-то в подсознании я это понял и как то пользуюсь СКВ, но это не годится, не понятно что происходит.

DJm00n commented 6 years ago

Тут я уже ничего не имею ввиду под снимком, состоянием, коммитом. Я хочу узнать, что нужно иметь ввиду под этими понятиями. Книга этого не даёт, в силу плохого перевода, однако несомненно где-то в подсознании я это понял и как то пользуюсь СКВ, но это не годится, не понятно что происходит.

Глава: 10.2 Git изнутри - Объекты Git объясняет это, хоть и мудрёно. Кстати, существует также и профессиональный перевод ProGit 2 от издательства «Питер» - можете почитать там: https://www.piter.com/product_by_id/44690054 (на трекерах есть).

Dobrosvet commented 6 years ago

@DJm00n, спасибо. Там написано что коммит это зафиксированные данные. В первом же его употреблении.

vlsi commented 6 years ago

Так объясните русскими словами что такое коммит что бы я понял что это такое

Ну, мои пункты а..д как раз про описательную часть того, что из себя представляют коммит и снимок.

Предлагаю такие варианты (это не кандидаты на перевод, а просто попытка объяснить смысл слов): "снимок"

Здесь в игру вступают децентрализованные системы контроля версий (ДСКВ). В ДСКВ (таких как Git, Mercurial, Bazaar или Darcs), клиенты не просто скачивают снимок всех файлов (состояние файлов на определённый момент времени): они полностью копируют репозиторий

Смысл простой. Снимок файлов тут означает "в файле hello.txt хранится строка hello world". При этом, в понятие "снимок файлов" совершенно не вкладывается то, "каким образом мы пришли к этому состоянию". В "снимок файлов" не вкладывается и то, "какая история была вчера". В снимок файлов не вкладывается и то, "какие изменения мы сейчас делаем". Снимок файлов это просто непривязанное к истории состояние.

Рассмотрим, например: "состояние 1" : в файле hello.txt написано слово "hello" (и больше ничего нет) "состояние 2": в файле hello.txt написано слово "hello world" (и больше ничего нет)

Глядя на одни только "состояния" невозможно понять какова была история развития проекта. Невозможно даже "просто" понять какое сейчас самое последнее состояние (т.к. сами по себе состояния никак не упорядочены).

И тут на поле выходят коммиты. Коммит описывает следующее: кто, когда, в какое состояние привёл файлы (состояние файлов в результате коммита), и в каком состоянии они были до этого (родительский коммит). Именно коммиты выстраиваются в дерево за счёт того, что у почти у каждого коммита есть ссылка на предыдущий (или несколько предыдущих в случае merge). У самого первого коммита нет "родительского", но это не так важно.

Заметьте, в коммите не просто "предыдущее состояние", а именно ссылка на "предыдущий" коммит (parent commit). Если бы в коммите было просто 2 ссылки на "текущее состояние файлов" и на "предыдущее состояние файлов", то из таких данных было бы невозможно понять историю развития проекта. Например, кто-то может каждый день добавлять и удалять слово world из файла hello.txt. Тогда в репозитории будет всего только 2 состояния файлов, но при этом может быть куча коммитов, которые выстраиваются в цепочку, и по которой можно понять кто, когда и что сделал.

Именно по коммитам можно понять "какое состояние файлов" актуально сейчас, какое было вчера и т.п. Сами по себе "состояния файлов" не упорядочены, а коммиты задают частичный порядок истории репозитория.

Dobrosvet commented 6 years ago

@vlsi, вы даже отметили что вам не нравится предыдущий мой комментарий, как будто в книге упомянутой @DJm00n нету утверждения что коммит это зафиксированные данные. Или как будто я сказал "Всё утверждаем этот вариант". Это не так. Я просто указал на факт. А мне не нравится что вы хотите оставить коммит.

Воооот, теперь понятнее, спасибо. В таком случае коммит похож на запись в журнале. Запись вроде соответствует всему что как вы говорите, описывает коммит и предложение

Вась, ты во вчерашнем коммите точно ту функцию вызвал? Вась, ты во вчерашней записи точно ту функцию вызвал?

Так же выглядит хорошо, это уже не снимок, смысл которого некорректен. Вполне русское слово. Также вызывает нужные ассоциации. Мне даже стали понятны предложения из русской версии учебника. Даже короче английского слова получилось. Что вам тут не нравится?

И это тоже выглядит лучше

"зафиксировать изменения" / "вчерашний коммит" "записать изменения" / "вчерашняя запись"

Предлагаю. коммит - запись закоммитить - записать

vlsi commented 6 years ago

вы даже отметили что вам не нравится предыдущий мой комментарий, как будто в книге упомянутой @DJm00n нету утверждения что коммит это зафиксированные данные

Я ту книгу не читал, но осуждаю. В этой книге уже был перевод "отбор лучшего" для операции "cherry-pick" https://github.com/progit/progit2-ru/issues/36#issuecomment-193133473. Это крайне неудачный перевод.

Вась, ты во вчерашней записи точно ту функцию вызвал? Так же выглядит хорошо, это уже не снимок, смысл которого некорректен

Запись слишком общее понятие. Ну, прямо реально слишком общее. Обычно запись бывает в каком-то журнале, в каком-то файле. И слово запись не отражает физический смысл самой записи. Чтобы понять какой смысл несёт запись нужно посмотреть на её содержимое.

Слово коммит же отражает смысл, что "коммиты упорядочивают историю развития проекта". Снимки файлов, на самом деле, это тоже записи в репозитории.

Dobrosvet commented 6 years ago

А тут крайне не удачный перевод коммита

Что это за аргумент "общее"? Ключ тоже общее понятие, он много чего значит, но никто не говорит электронный кей, хоть он и появился относительно недавно. В разном контексте имеет разное значение и при этом он остался ключом. Ни разу в жизни не возникало путаницы о каком ключе говорится, скрипичном, родниковом, дверном и т.д. Что мешает сделать это для записей.

Записями тоже можно упорядочивать историю развития проекта. (ну уж не стану их составлять для примера, думаю сможете представить как они это делают, в одной ссылка на предыдущую в ней ещё и т.д. с уникальными идентификаторами и временем) В контексте СКВ Git пусть записи обозначают ваши коммиты, а для файлов это будут снимки.

Не понял фразы

слово запись не отражает физический смысл самой записи

Какой она должна отражать в случае коммита? Ей это не под силу в отличии от коммита? почему?

vlsi commented 6 years ago

слово запись не отражает физический смысл самой записи

Имел ввиду, что запись не отражает то, что именно находится в этой записи. Есть record, есть commit, есть filesystem snapshot. Всё это можно назвать общим термином запись, но каждое конкретное слово более точно отражает называемый объект.

В этом ключе слово commit точное.

Какой она должна отражать в случае коммита? Ей это не под силу в отличии от коммита? почему?

Слово коммит отражает, что речь не про абстрактную запись в репозитории, а именно про определённый тип записей, которые формируют историю развития репозитория. История развития весьма важный концепт, и немудрено, что для разных типов записей нужны прямо разные слова.

Есть пример из области "как называть снег". Казалось бы, достаточно одного слова "снег" и всего делов. Но, профессионалы в этой области так не думают:

http://antropogenez.ru/quote/305/ Другими примером того же рода могут служить слова, служа­щие для обозначения «снега» в языке эскимосов. Здесь мы нахо­дим одно слово, обозначающее «снег на земле», другое — «падаю­щий снег», третье — «снежный сугроб», четвертое — «снежную вьюгу».

В том же языке тюлень в различных положениях обозна­чается различными терминами. Одно слово является общим тер­мином для «тюленя», другое означает «тюленя, греющегося на солнце», третье — «тюленя, находящегося на плавающей льдине», не говоря уже о многих названиях для тюленей разных возрастов и для самца и самки.

Вот вы пойдите к эскимосам и объясните им, что все их слова лишние, и достаточно одного слова "снег".

Так и со словами коммит / запись. коммит является частным случаем записи. снимок файлов может рассматриваться как частный случай записи. Поэтому использовать запись не годится, т.к. в этой предметной области важно сразу точно и метко указывать на то, про какую запись говорим.

vlsi commented 6 years ago

ну уж не стану их составлять для примера, думаю сможете представить как они это делают, в одной ссылка на предыдущую в ней ещё и т.д. с уникальными идентификаторами и временем

Вот как раз в этом и дело, что такой тип записей в Git называется коммитами.

vlsi commented 6 years ago

В разном контексте имеет разное значение и при этом он остался ключом. Ни разу в жизни не возникало путаницы о каком ключе говорится, скрипичном, родниковом, дверном и т.д.

С коммитами всё по-другому. В Git есть много разных типов записей. Все типы используются в рамках одной книги, и многие типы записей используются в одном предложении одновременно.

Вспомните, например, такое:

Git is fundamentally a linked list of commit objects that point to a snapshot of content

lined list это первый тип записей commit это второй тип записей snapshot of content это третий тип записей И все эти записи используются в одном предложении.

Путаницы между дверным и скрипичным не возникает, т.к. обычно они не используются в одном предложении (да и в рамках одной статьи они нечасто используются вместе).

Dobrosvet commented 6 years ago

list это список и там пункты или элементы, а не записи commit - запись snapshot of content - снимок содержимого Всё в контексте Git. Получается (простите за мой английский)

Основа Git связанный список объектов записей, которые указывают на снимки содержимого.

Путаницы вроде нет, даже никаких дополнительных уточнений я не использовал и всё в одном предложении.

NickVolynkin commented 6 years ago

@Dobrosvet вы сетуете, что Git не адаптирован для того, чтобы его осваивали новички. Действительно, не адаптирован, а ещё и просто сложен. И языки программирования сложны, и всё остальное в IT достаточно сложное. Можно пойти дальше: строительство — сопромат, право — кучи законов и юридический язык, в космос полететь — надо на центрифуге тренироваться. Везде сложно, а причина этого проста. Инструменты делаются не для того, чтобы их осваивали новички. Они делаются, чтобы решать ими задачи реального мира. А реальный мир сложный, потому и инструменты сложные.

Пока что вы изучили основы Git. Вам сейчас кажется, что вы лучше всех понимаете, как всё должно быть устроено. Когда вы изучите ещё сколько-то — поймёте, почему всё устроено именно так. Это похоже на эффект Даннинга-Крюгера.

Термин «коммит» уже знают и используют сотни тысяч русскоязычных инженеров. Вы не сможете поменять их привычки и никто не сможет. Если в книге или переводе интерфейса использовать другой термин, то эта книга и интерфейс только вызовут раздражение. Насильно мил не будешь.

Перевод «коммит» выбрали не вам назло. Его выбрали, чтобы не мешать работать людям, которые уже к нему привыкли. Им и без этого сложно работать.

Dobrosvet commented 6 years ago

@NickVolynkin, я не понимаю меня вообще никто не воспринимает что ли, нет я понял я ни слова больше не скажу, только отвечу на ваш комментарий. Во-первых утверждение

вы сетуете, что Git не адаптирован для того, чтобы его осваивали новички

Не верно, по тому что я не говорю "Адаптируйте Git для новичков, что бы им было легче", я не прошу адаптировать Git я прошу адаптировать слово одно лишь слово, которое составляет основу для изучения Git. Я утвержадаю что слово коммит не соответствует и не ассоциируется ни с чем что любой человек изучал до этого в своей жизни, а например 'запись' или хотя бы 'фиксированные данные' как бы она ВАМ не резала слух НОВИЧКАМ она была бы ПОНЯТНЕЕ изначально. Я прошу это не для профессионалов, а для НОВИЧКОВ, по тому что профессионалы уже прочитали эту книгу она им нафиг не нужна, когда уже не совсем новичок придёт работать к профессионалам они ему скажут" мы говорим коммит это значит 'фиксированные данные', а он скажет "Хорошо, мне понятно, будет коммит". А я вам говорю что когда я читаю книгу я хочу ПОНИМАТЬ её по тому что для этого она предназначена, а в этой книге в начале даже нормального определения не даётся. Нормальное определение написал @vlsi его можно написать более литературно (в смысле именно для обучающей книги)

Вам сейчас кажется, что вы лучше всех понимаете, как всё должно быть устроено.

Да откуда вы это вообще берёте. Я ничего вообще, ничего в своей жизни не знаю лучше других, буквально! Я аутсайдер по тому что не понимаю как жить в этом мире, и даже на просьбу, я подчёркиваю ПРОСЬБУ и предлжение, такая реакция. Я не под вашим эфектом, я под вашим непонятно откуда взявшимся, выводом что я знаю что то лучше всех.

не мешать работать людям, которые уже к нему привыкли

Они РАБОТАЮТ они не читают книги по основам с которыми они уже работают и знают, иначе они бы не работали

Я пытаюсь учится, а вы пытаетесь не научить а унизить, спасибо за поддержку.

vlsi commented 6 years ago

и даже на просьбу, я подчёркиваю ПРОСЬБУ и предлжение, такая реакция. Я не под вашим эфектом, я под вашим непонятно откуда взявшимся, выводом что я знаю что то лучше всех.

@Dobrosvet , пока же всё выглядит так, что вы пришли в автошколу и предложили говорить вместо педаль газа слово педаль бензина. Ну, действительно. Машина заправляется бензином? Бензином. При чём тут газ? Зачем запутывать новичков? Новичкам же гораздо понятнее, если говорить педаль бензина.

Представляете себе реакцию водителей, если предложить во всех инструкциях вместо слова педаль газа поставить слово педаль бензина?

Может, попробуете слово файл перевести на русский, чтобы новичкам понятнее было? Ну, действительно, новичкам, ведь, вообще непонятно что значит файл.


По факту, да, чтобы предлагать, нужно разбираться в области. Если вы только пару раз пощупали слона, то это не повод просить авторов книг о внесении изменений в терминологию.

Сначала вы предлагаете переводить commit словом закрепить Потом вы говорите, что слово снимок (как перевод слова commit) понятно без словарей Потом вы переходите к варианту "запись"

Ладно, если бы вы как-то реагировали, но вам же уже сказали почему варианты не подходят. Единственной вашей реакцией было то, что вы пришли к выводу, что не понимаете что же на самом деле обозначает слово коммит. Само непонимание -- это норма (например, можно водить машину и не понимать чем инжектор отличается от карбюратора). Не норма то, что вы всё равно просите/предлагаете вариант перевода.

запись является слишком общим термином. Если вы думаете, что для программистов слово запись может однозначно обозначать существительное commit, то вы глубоко заблуждаетесь. Существует ли реально подходящее слово для перевода существительного commit -- без понятия. Но мне это не интересно. Вообще не интересно, т.к. не вижу ничего плохого в том, чтобы использовать новое слово (в том числе, заимствованное) для описания новой сущности.

Язык развивается, и вполне может быть, что в очередную редакцию "словаря Ожегова" (или куда там) добавят слово "коммит (сущ.) -- ..."

Menelion commented 5 years ago

Коллеги, я в очередной раз прохожусь по первой части, сравнивая с английской версией и синхронизируя, где надо.
И вот я задумался: а почему у нас distributed VCS — это децентрализованная, а не распределённая СКВ? Честно, много раз и слышал, и читал именно о распределённых системах контроля версий в противовес централизованным.
Кто что думает?

vlsi commented 5 years ago

Да, похоже, что "распределённая" правильнее.