Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Система контроля версий и бекап для распределенных бекапов

3165  1 2 3 все
wasja-de постоялец03.12.23 11:34
03.12.23 11:34 
Последний раз изменено 03.12.23 12:18 (wasja-de)

Добрый день,


посоветуйте, пожалуйста, бесплатный сабж. Имеется 4-6 пользователей под линукс (убунта), которые совместно девелопят проект, в котором не только много данных и компиляторов (используется веб, С/С++, ембеддед, плиски, питон, скрипты), но и имеется много (терабайты) данных. Пока все на общественных началах, поэтому на старье, что у кого было под рукой.


Имеется небольшой сервер в сети (300ГБ есть свободных) и есть переносные системы бекапов, в которые можно вставлять старые, но еще живые HDD суммарно на 50ТБ, у каждого есть просто свой лаптоп (не новый, а какой есть).


Что хочется.


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

1. Поддерживать контроль версий для разработки софта, там данных мало, до миллиона строк кода мы врят ли добежим, но больше ста тысяч строк будет однозначно.

2. Компиляторы: у нас нет возможности купить все лицензии на каждого, поэтому планируется, что на каждом компе свой зоопарк, но этот зоопарк разумно тоже как-то бекапить и иметь доступ компилировать удаленно.

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

4. Надо также иметь обычный бекап раз в день и раз в месяц, желательно всех данных и софта.

5. Данных за день может нагенериться на пару терабайт, иногда данные надо распределять друг между другом, иногда, по прошествии какого-то времени выбрасывать. У каждого разные лаптопы, у кого-то всего с системой 500ГБ, у кого-то 4ТБ.

6. Не всегда у всех есть доступ к интернету или к быстрому интернету. Грубо говоря, много данных генерятся в полевых испытаниях (компьютер вижн и кучи спец сенсоров от бегающей собачки-спота по полю), и иногда надо это сохранять, иногда распределять между всеми, а иногда, по прошествии какого-то время или бекапить, или выкидывать.


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


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


Спасибо!

#1 
AlexNek патриот03.12.23 20:35
AlexNek
NEW 03.12.23 20:35 
в ответ wasja-de 03.12.23 11:34

Для начала давайте делить задачи... Или хочется всё в одном?


на каких системах контроля версий

Думаю git вполне подойдет для исходников и не очень больших бинов.

Сделал общий репозиторий, скачал копию себе и ушел. после синхронизация


Компиляторы

Видимо докер. Сделал оригинальный снимок и пользуй где нужно.


бекап

https://www.2brightsparks.com/syncback/sbpro.html давно пользуюсь очень доволен и цена божеская

#2 
wasja-de постоялец03.12.23 21:41
NEW 03.12.23 21:41 
в ответ AlexNek 03.12.23 20:35, Последний раз изменено 03.12.23 21:47 (wasja-de)

Спасибо за ответ!!!


Для начала давайте делить задачи... Или хочется всё в одном?


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


То есть пример - двое из команды со своими лаптопами (500ГБ и 4ТБ) наснимали данных суммарно на 2ТБ где-то в поле без доступа к интернету (в Швейцарии роуминг и народ пожмотил), тот, у кого 4ТБ - сохранился у себя, другой сохранил часть, что посчитал нужной для него. Они разъехались, отослали на сервер сорсы апдейтов и док репорта, остальные через время захотели вытащить данные посмотреть, но тот, кто у себя взял все, уже успел забыть отчекить это куда-то, да и не куда, на сервере в сети есть только 300ГБ, а на внешних дисках, что туда-сюда из рук в руки передаются, кто-то чего-то подзабыл сохранить. Потом получилась неразбериха и все поругались обвиняя друг друга в раздолбайстве.


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


А для сорсов да, что-то вроде гита, или все-таки cvs - это верно. Но не хочется кучи всего и разного, а хочется из одного флакона. И чтоб сравнения данных умело делать не качая данные по сети. То есть грубо говоря у двух на лаптопах есть даные по 200ГБ, и система по контрольной сумме детектировала, что это - одно и то же, и если у одного не хватает места, он может бросить запрос с фразой "можно я у себя удалю" чтобы локально новые данные нагенерить, но чтобы потом при необходимости эти данные к нему, если это нужно, снова приедут.


https://www.2brightsparks.com/syncback/sbpro.html давно пользуюсь очень доволен и цена божеская


Спасибо большое за ссылку, как я понимаю, они линукс не поддерживают? К сожалению, дальше не смотрел из-за этого.

#3 
AlexNek патриот03.12.23 22:17
AlexNek
NEW 03.12.23 22:17 
в ответ wasja-de 03.12.23 21:41
они линукс не поддерживают?

никогда не интересовался. Там другой мир...


Ибо есть проблемка - данные могут быть большими

Не думаю, что есть что то готовое. Возможно что то свое с гитом скрестить.

Типа для больших файлов делаем файл ссылку: (контрольная сумма, у кого оригинал, где будет копия, и т.п.)

может проще micro sd card по почте слать?


на сервере в сети есть только 300ГБ

А что мешает сделать больше? Буквально на неделе искал хороший 7200 диск, меньше 2 терабайт не нашел. 4-6 Tb стоят не очень много сейчас + синологи= нормальный домашний сервер.


#4 
wasja-de постоялец03.12.23 23:05
NEW 03.12.23 23:05 
в ответ AlexNek 03.12.23 22:17
может проще micro sd card по почте слать?

я лет 10 назад как раз участвовал в проекте, где данные по почте были. Раз в неделю приходила посылка с двухтерабайтником, или двумя такими дисками, а после обработки, я эти диски назад отправлял. Тогда была иерархия - точка-в-точку, особо не требовало усилий.


А что мешает сделать больше? Буквально на неделе искал хороший 7200 диск, меньше 2 терабайт не нашел. 4-6 Tb стоят не очень много сейчас + синологи= нормальный домашний сервер.


Сейчас данных может быть много. Как я уже писал, есть 50 терабайт, скорей всего будет еще докупаться. И основная проблема не в том, где найти на домашнем сервере столько места, а как не запутанно организовать способ сохранения и бекапов, чтобы команда без простоя работала и не сралась из-за не понимания где есть данные. Технически почти всегда какая-то обработка данных может быть произведена и удаленно, но, грубо говоря, это тоже надо администрить. То есть если кто-то обнаружит, что ему нужные данные есть у меня на лаптопе, качнет свой софт мне, и у меня запустит обработку, а я, не зная, что это произошло, возьму и закрою крышку лаптопа.


Да и качнуть терабайт с одного пользователя другому по домашней сетке может быть сложно хотя бы из-за того, что провайдер может на дыбы встать. А по мобильнику - так совсем. Тем более в Германии, с ужасно плохой инфраструктурой сетей. Я, кстати, несколько лет назад, когда у меня был ужасно медленный интернет, как-то попросил знакомого качнуть где-то 400ГБ на мой сервер, так его проводной провайдер (1&1) ему потом слал кучу макулатуры на подпись, что он не торрентил.

#5 
AlexNek патриот03.12.23 23:19
AlexNek
NEW 03.12.23 23:19 
в ответ wasja-de 03.12.23 23:05
Сейчас данных может быть много

В любом случае их нужно где то хранить в одном месте.

И если по интернету сложно, то остается только физическая пересылка.


как не запутанно организовать способ сохранения

Это будет проблема N1. Что именно хотим хранить? Большие данные или только "ссылки" на них?


и бекапов,

Это будет проблема N2 - почти уверен что под никсами есть полно софта для этого.

https://www.cyberciti.biz/open-source/awesome-backup-softw...

#6 
anatoli888 гость08.12.23 23:07
NEW 08.12.23 23:07 
в ответ wasja-de 03.12.23 11:34
  1. Git-сервер - наше всё! Забиваем на облака, ставим свой GitLab прям на нашем серваке. Контроль версий, задачи, вики – весь пакет. Работаем круто и без шума.
  2. Git на каждом лаптопе: Чтобы каждый был сам по себе хакер, настраиваем локальные репы Git. Оффлайн? Не беда, всё синхронизируем потом.
  3. Docker – наше спасение: Каждый со своими компиляторами, как в зоопарке, но без головняка. Docker на помощь – контейнеры туда-сюда, и всё гладко.
  4. Бекапы? Есть! Берем rsync или что посерьезнее типа Bacula, и настраиваем автомат бекапов на сервер и внешние HDD. Пусть крутится!
  5. Синхронизация – по пацански: В оффлайне? Не вопрос, Wi-Fi сеть в студию, Syncthing и всё такое. Обмениваемся данными, как настоящие гуру.
  6. Шифрование и VPN: Чтобы никто не подсматривал, шифруем данные и ставим VPN. Безопасность превыше всего!
  7. Управление доступом: Кто куда может – строго по списку. Никаких лишних глаз и рук.

Вот такой план, бро. Работаем круто, быстро и без шума. Пацаны в теме! 🤟

вон тебе совет от ChatGPT :)

#7 
alex445 коренной житель09.12.23 02:08
NEW 09.12.23 02:08 
в ответ anatoli888 08.12.23 23:07
  1. Git-сервер - наше всё! Забиваем на облака, ставим свой GitLab прям на нашем серваке. Контроль версий, задачи, вики – весь пакет. Работаем круто и без шума.
  2. Git на каждом лаптопе: Чтобы каждый был сам по себе хакер, настраиваем локальные репы Git. Оффлайн? Не беда, всё синхронизируем потом.
  3. Docker – наше спасение: Каждый со своими компиляторами, как в зоопарке, но без головняка. Docker на помощь – контейнеры туда-сюда, и всё гладко.
  4. Бекапы? Есть! Берем rsync или что посерьезнее типа Bacula, и настраиваем автомат бекапов на сервер и внешние HDD. Пусть крутится!
  5. Синхронизация – по пацански: В оффлайне? Не вопрос, Wi-Fi сеть в студию, Syncthing и всё такое. Обмениваемся данными, как настоящие гуру.
  6. Шифрование и VPN: Чтобы никто не подсматривал, шифруем данные и ставим VPN. Безопасность превыше всего!
  7. Управление доступом: Кто куда может – строго по списку. Никаких лишних глаз и рук.

#8 
alex445 коренной житель12.02.24 21:51
NEW 12.02.24 21:51 
в ответ alex445 09.12.23 02:08, Последний раз изменено 12.02.24 21:55 (alex445)

Ладно, ребята. Недавно узнал, что поправить комменты к запушенному коммиту в Гите просто так нельзя. Нужно делать разную магию, любая из которой не рекомендуется. Например, можно создать новую ветку, с места до коммита, в котором хочешь исправить коммент, сделать в этой новой ветке изменения, аналогичные коммиту, где хочешь исправить коммент, написать правильный коммент, запушить коммит в новой ветке, затем замёрджить новую ветку с той, в последнем коммите которой хочешь исправить коммент. Фича простого исправления коммента в коммите достаточно востребованная, но сколько лет прошло - ничего не сделано для неё. Поэтому все просто забивают на исправление комментов, если это что-то не слишком уж важное, типа исправить опечатки или добавить-удалить описание коммита.


Торвальдс там чем думал, когда такое творил?

#9 
AlexNek патриот12.02.24 22:29
AlexNek
NEW 12.02.24 22:29 
в ответ alex445 12.02.24 21:51
там чем думал, когда такое творил?

правильным местом смущ и желательно подумать отчего именно так сделано.

Может еще нужно разрешить содержимое файлов редактировать в старых коммитах?

#10 
alex445 коренной житель13.02.24 01:10
NEW 13.02.24 01:10 
в ответ AlexNek 12.02.24 22:29

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

#11 
AlexNek патриот13.02.24 18:15
AlexNek
NEW 13.02.24 18:15 
в ответ alex445 13.02.24 01:10
если можно будет поправить комменты?

Давайте начнем немного с другого.

Закомитил я проект и вдруг вижу, что в описании ошибка. Как ее исправить? Нужно видимо отредактировать файл readme в коммите.

Хочу редактировать - фиг вам, низзя - почему?

#12 
Бесконечный цикл постоялец13.02.24 19:09
NEW 13.02.24 19:09 
в ответ wasja-de 03.12.23 11:34

Хранение данных. Совместима с Амазоновским S3 https://github.com/minio/minio


Версионирование данных. https://github.com/iterative/dvc Довольно популярная штука, хотя я не уверен, что это хорошо. Какие-то наши сделали и весной-летом подняли финансирование и искали работников на удаленку.


Обработка данных. https://github.com/ray-project/ray Это просто огонь. Я покурил немного доки и впечатлился. Spark отдыхает. Для обработки и анализа данных. Уже есть на AWS и Azure, хотя относительно новая штука.

#13 
alex445 коренной житель13.02.24 20:37
NEW 13.02.24 20:37 
в ответ AlexNek 13.02.24 18:15
если можно будет поправить комменты?

Давайте начнем немного с другого.

Закомитил я проект и вдруг вижу, что в описании ошибка. Как ее исправить? Нужно видимо отредактировать файл readme в коммите.

Хочу редактировать - фиг вам, низзя - почему?

Вы смешали коммит и его описание. Исправить коммит - это исправить код. Это через другой коммит. А описание коммита это не код. И его должно быть можно исправить без проблем. То, что Торвальдс не разделил это - его недоработка.


А что, править коммент коммита можно только через другой коммит? А как? Делать пустой коммит с правильным комментом? Это же чушь - коммент относится к коммиту, т.к. комментирует то, что сделано в коммите.

#14 
AlexNek патриот13.02.24 21:43
AlexNek
NEW 13.02.24 21:43 
в ответ alex445 13.02.24 20:37
коммент относится к коммиту

вот именно! Это и есть концепт.


И представьте, что коммент - это специальный невидимый файл в коммите.


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

1й чел. забрал и отредактировал.

2й чел. забрал и отредактировал тот же коммент.

Какие нужны будут операции на сервере, когда оба захотят сохранить...


#15 
alex445 коренной житель13.02.24 22:47
NEW 13.02.24 22:47 
в ответ AlexNek 13.02.24 21:43, Последний раз изменено 13.02.24 22:49 (alex445)
представьте, что коммент - это специальный невидимый файл в коммите.

Какая разница, как это сейчас реализовано? Главное, как нужно было. Торвальдс недоработал. "Мы не можем это сделать - у нас реализация не позволяет". Ну так сделай, чтобы позволяла. Или нимб над головой мешает, а личные, персональные фанаты и не сильно требуют?


Если очень хочется можно представить, что будет если разрешить редактировать любой коммент.
1й чел. забрал и отредактировал.
2й чел. забрал и отредактировал тот же коммент.
Какие нужны будут операции на сервере, когда оба захотят сохранить...

Вопросы синхронизации человечество решило уже давным давно. Как и вопросы прав доступа. Или Торвальдс недоработал и тут?

#16 
Программист коренной житель14.02.24 10:00
NEW 14.02.24 10:00 
в ответ alex445 13.02.24 20:37
А что, править коммент коммита можно только через другой коммит? А как? Делать пустой коммит с правильным комментом? Это же чушь - коммент относится к коммиту, т.к. комментирует то, что сделано в коммите.

Концепт предельно прост - все, что сохраняется не может быть изменено.

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

#17 
alex445 коренной житель14.02.24 15:30
NEW 14.02.24 15:30 
в ответ Программист 14.02.24 10:00, Последний раз изменено 14.02.24 15:31 (alex445)
Концепт предельно прост - все, что сохраняется не может быть изменено.

Я и говорю - сделано на отъебись, proof of concept, не подумав дальше носа. А потом забронзовело, как и создатель этого. )))

#18 
MrSanders коренной житель14.02.24 15:56
NEW 14.02.24 15:56 
в ответ alex445 14.02.24 15:30

Так это, сделай свой. Кто ж тебя останавливает, ты погромизд или где?

P.S. учи яву, как выучишь, я тебя на работу пристрою - у тебя счастье будет. Там половина команды такие же.

#19 
AlexNek патриот14.02.24 18:17
AlexNek
NEW 14.02.24 18:17 
в ответ alex445 13.02.24 22:47
Главное, как нужно было.

Сделано именно так как нужно.

А то, что кому то хочется по другому...

Вроде бы казалось, концепт понятен стал, но нет - разработчик придурок.


Вопросы синхронизации человечество решило уже давным давно.

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

#20 
alex445 коренной житель14.02.24 20:11
NEW 14.02.24 20:11 
в ответ AlexNek 14.02.24 18:17

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

#21 
alex445 коренной житель14.02.24 20:11
NEW 14.02.24 20:11 
в ответ MrSanders 14.02.24 15:56
Так это, сделай свой. Кто ж тебя останавливает, ты погромизд или где?

"Сперва добейся"

#22 
AlexNek патриот14.02.24 20:36
AlexNek
NEW 14.02.24 20:36 
в ответ alex445 14.02.24 20:11
Коммент синхронизировать не надо

Интересно, редактировать хочу, а синхронизировать не надо.


На коммент имеется право доступа

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


А синхронизировать - так же, как и коммиты

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


Кстати, хочу еще rollback изменений коммента смущ

#23 
alex445 коренной житель14.02.24 21:49
NEW 14.02.24 21:49 
в ответ alex445 14.02.24 20:11, Последний раз изменено 14.02.24 21:52 (alex445)
Коммент синхронизировать не надо. На коммент имеется право доступа - у его создателя и администратора. А синхронизировать - так же, как и коммиты, не?

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


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


Ладно, проехали - не надо, так не надо. Мне надо. Но если нельзя - ну и хрен с ним.


Нельзя, но если очень хочется, то можно.

Можно, но если трудно сделать, то нельзя. ))



#24 
MrSanders коренной житель14.02.24 23:01
NEW 14.02.24 23:01 
в ответ alex445 14.02.24 20:11
"Сперва добейся"

Я ж тебе уже говорил пару раз, что ты не очень разумный человек, да?

У тебя есть open source проект (прикинь?) тебе не нравится какая-то фича (или отсутствие какой-то фичи). Ты долго и нудно воняешь по этому поводу. Все тебя посылают, потому что считают твою вонь просто проявлением тупости. Ну так докажи всем. Сделай форк и добавь эту фичу. Глядишь, поймёшь почему камменты менять нельзя. Хотя, вряд ли, конечно.

#25 
alex445 коренной житель15.02.24 14:36
NEW 15.02.24 14:36 
в ответ MrSanders 14.02.24 23:01, Последний раз изменено 15.02.24 14:38 (alex445)

Ваше "опенсорс" не нужно 99,99% людей. Они хотят просто пользоваться готовым и чтобы работало как надо. Может даже заплатят что-то за это, но то меньшинство. Но если не работает - те же 99,99% просто смирятся или пройдут мимо, может даже выскажут претензии. Но исправлять ничего не будут, т.к. игра не стоит свечь.

#26 
MrSanders коренной житель16.02.24 12:02
NEW 16.02.24 12:02 
в ответ alex445 15.02.24 14:36

Ну так продолжай пердеть в лужу, кто ж тебе мешает. И ради бога, ты ж в этих 99,99% да? Пройди мимо, брось каку, не пользуйся опенсорс. А то глаза покраснеют, да.

#27 
alex445 коренной житель16.02.24 16:52
NEW 16.02.24 16:52 
в ответ MrSanders 16.02.24 12:02

Как же меня задолбали эти рафаэлки... Каждую маленькую конфетку разворачивать!

#28 
alex445 коренной житель29.02.24 19:52
NEW 29.02.24 19:52 
в ответ alex445 16.02.24 16:52, Последний раз изменено 29.02.24 19:54 (alex445)

Спрошу здесь. В Гите можно посмотреть все файлы проекта на текущий коммит? Не лишь изменённые, а все. При этом не загрузить себе весь проект, а лишь из списка файлов глянуть нужные. Глянуть историю коммитов для конкретного файла можно, но этого мало - мне нужно глянуть, как некоторые взаимозависымые файлы - изменённые и нет - выглядели при том или другом коммите.


В TFS майкрософтовском на каждый коммит можно было смотреть все файлы - изменённые и нет.

#29 
AlexNek патриот29.02.24 20:25
AlexNek
NEW 29.02.24 20:25 
в ответ alex445 29.02.24 19:52
Не лишь изменённые, а все.

Типа так для любого коммита?


#30 
AlexNek патриот29.02.24 20:29
AlexNek
NEW 29.02.24 20:29 
в ответ alex445 15.02.24 14:36
Но исправлять ничего не будут, т.к. игра не стоит свеч

У каждого свое видение проблемы, пару штук точно форкнул и исправил, хотя многие форкают... и ничего больше не делают.

#31 
alex445 коренной житель01.03.24 00:10
NEW 01.03.24 00:10 
в ответ AlexNek 29.02.24 20:25
Типа так для любого коммита?

Да. Что это за утилита. В Студию встраивается?


Кстати, любителям консоли. А как в консольных клиентах Гита реализована демонстрация тех же списков файлов коммита, комменты, ещё что-то? Всё прямо в консоли пытаются изобразить костыльными средствами форматирования текста?

#32 
MrSanders коренной житель01.03.24 08:19
NEW 01.03.24 08:19 
в ответ alex445 29.02.24 19:52
... все файлы проекта на текущий коммит? Не лишь изменённые, а все. При этом не загрузить себе весь проект, а лишь из списка файлов глянуть нужные.

Так все файлы или нужные? Что значит "глянуть"? Посмотреть на имена или на содержание? Если на содержание, чтобы посмотреть на него, его придётся того... Загрузить с удалённого сервера. Удивился?

git archive тебе в помощь. "Не загружая весь проект", в смысле не клонируя и не стягивая всю историю, просто скопировать состояние проекта на определённый коммит.

Или пользуйся серверами гит вроде гитлаб, гитхаб, битбакет. У них у всех есть веб-интерфейс, покажут тебе состояние проекта в любом коммите.

#33 
MrSanders коренной житель01.03.24 08:39
NEW 01.03.24 08:39 
в ответ alex445 01.03.24 00:10
Кстати, любителям консоли. А как в консольных клиентах Гита реализована демонстрация тех же списков файлов коммита, комменты, ещё что-то? Всё прямо в консоли пытаются изобразить костыльными средствами форматирования текста?

Оооо... Отсталый виндузятнег. Уже лет 10 как напрямую в мозг проецируют, лошара.

Так-то вопрос, конечно, дебильный. В консоли - консольными средствами. Форматированием текста. А чем ещё можно пользоваться в консоли?


Предваряя твои "хитрые" вопросы, открою тебе страшную тайну: если человек умеет пользоваться консолью, то у него есть мозги. Он может выбирать себе подходящие инструменты. И с гуём он справится. Обратное не верно.

Чтобы посмотреть сложную историю, лично я беру SourceTree. Имхо лучше всего показывает. Быстро глянуть на 2-3 ветки достаточно и текста в консоли.

Список файлов коммита... А без свистоперделок ты уже имена файлов в текстовом виде не воспринимаешь? Без иконок несчитово? В обычной работе я посмотрю коммит в IDE. Если прибегают кнопкожмяки с "памагити паламалась", то смотрю в консоли, быстрее, надёжнее.

#34 
alex445 коренной житель01.03.24 09:45
NEW 01.03.24 09:45 
в ответ MrSanders 01.03.24 08:19, Последний раз изменено 01.03.24 10:00 (alex445)





... все файлы проекта на текущий коммит? Не лишь изменённые, а все. При этом не загрузить себе весь проект, а лишь из списка файлов глянуть нужные.
Так все файлы или нужные? Что значит "глянуть"? Посмотреть на имена или на содержание? Если на содержание, чтобы посмотреть на него, его придётся того... Загрузить с удалённого сервера. Удивился?
git archive тебе в помощь. "Не загружая весь проект", в смысле не клонируя и не стягивая всю историю, просто скопировать состояние проекта на определённый коммит.
Или пользуйся серверами гит вроде гитлаб, гитхаб, битбакет. У них у всех есть веб-интерфейс, покажут тебе состояние проекта в любом коммите.

Мне нужен список всего в проекте на каждый коммит - как в окошке Solution Explorer в Студии. Но чтобы я мог открыть любой файл. Как оно там будет сделано внутри - всё загрузит или не всё - мне пофиг. Я хочу как в Solution Explorer, но на каждый коммит. Буду я открывать все файлы или только один - моё дело. Но чтобы список всего был доступен как в Solution Explorer. И чтобы мне не пришлось выгружать текущую версию проекта и загружать просматриваемый коммит.


git archive тебе в помощь. "Не загружая весь проект", в смысле не клонируя и не стягивая всю историю, просто скопировать состояние проекта на определённый коммит.

И дальше что? Я ввёл это в консоли, он скопировал, теперь я должен открыть проект и смотреть в Студии? А если я не хочу закрывать текущий проект или его состояние? Насколько я знаю, Гит не может держать несколько копий проекта одновременно. Раньше я тут спрашивал - а как загрузить сразу несколько версий проекта в разные папки? А мне ответили (вроде даже вы) - Гит не про это, он про хранение лишь одной версии. Т.е. открыть один и тот же проект в разных состояниях на двух параллельно запущенных IDE он тоже не позволяет.


А как в такой системе смотреть сравнение файлов разных версий?


Или пользуйся серверами гит вроде гитлаб, гитхаб, битбакет. У них у всех есть веб-интерфейс, покажут тебе состояние проекта в любом коммите.

Т.е. Гит сам по себе нихрена не умеет, кроме как хранить историю изменений? Без обвеса кучей далеко не консольных утилит он имеет мало толку, т.к. просто хранить версии - полдела, нужно ещё и ПОКАЗЫВАТЬ. Тогда чего ж вы все, линуксойды, дрочите на эту сраную консольку? Нахрена осваивать консоль И гуй, если можно просто гуй, где будут к коммиты, и пуши, и сравнения версий, и ссылки на вики по проекту, привязка к таскам, и всё остальное?


))

#35 
alex445 коренной житель01.03.24 09:48
NEW 01.03.24 09:48 
в ответ MrSanders 01.03.24 08:39
если человек умеет пользоваться консолью, то у него есть мозги

Шутка года.

#36 
alex445 коренной житель01.03.24 09:53
NEW 01.03.24 09:53 
в ответ MrSanders 01.03.24 08:39

Предваряя твои "хитрые" вопросы, открою тебе страшную тайну: если человек умеет пользоваться консолью, то у него есть мозги. Он может выбирать себе подходящие инструменты. И с гуём он справится. Обратное не верно.

Чтобы посмотреть сложную историю, лично я беру SourceTree. Имхо лучше всего показывает. Быстро глянуть на 2-3 ветки достаточно и текста в консоли.

Список файлов коммита... А без свистоперделок ты уже имена файлов в текстовом виде не воспринимаешь? Без иконок несчитово? В обычной работе я посмотрю коммит в IDE. Если прибегают кнопкожмяки с "памагити паламалась", то смотрю в консоли, быстрее, надёжнее.

Линукс way - обложиться кучей разной мелокозаточенной хрени, каждая на свой случай жизни, у каждой свой подход и видение её создателя, который всех считает говном, кроме себя. Какая-то торвальдсовская болезнь, которую он перенёс на все свои поделия и на всех своих сектантов. ))

#37 
MrSanders коренной житель01.03.24 10:43
NEW 01.03.24 10:43 
в ответ alex445 01.03.24 09:45
Т.е. Гит сам по себе нихрена не умеет, кроме как хранить историю изменений?

Совершенно верно. Ещё немного и у тебя наступит просветление (хотя нет, не наступит, для этого надо думать, прости). Это философия такая. Каждый занимается своим делом и не пытается объять необъятное. Утилитка делает одно дело, но делает его хорошо.

#38 
MrSanders коренной житель01.03.24 11:07
NEW 01.03.24 11:07 
в ответ alex445 01.03.24 09:45
Мне нужен список всего в проекте на каждый коммит - как в окошке Solution Explorer в Студии. Но чтобы я мог открыть любой файл.

Как и что происходит в Solution Explorer я не знаю, поэтому "чтоб работало как там" мне не поможет ответить на вопрос.

Предположу. Есть клонированная репо. Она у тебя открыта в студии. Ты хочешь увидеть состояние всего проекта в определённый коммит. Так?

Пользуйся checkout. Как его обозвали гуеделы в твоей студии - найди сам. Обычно его прячут под "switch" (типа переключиться не ветку). Вот в этом чекауте просто выбираешь не имя ветки, а хэш (ид) коммита. Всё. Твой воркспейс будет содержать состояние проекта в этом коммите.
P.S. Почему кнопкожмяки не в состоянии использовать терминологию утилиты, вокруг которой они хреновертят свои красоты я не знаю.

И чтобы мне не пришлось выгружать текущую версию проекта и загружать просматриваемый коммит.

Куда выгружать, откуда загружать - не понятно. Попроще давай. Не используй термины, которых не понимаешь.

И дальше что? Я ввёл это в консоли, он скопировал, теперь я должен открыть проект и смотреть в Студии? А если я не хочу закрывать текущий проект или его состояние?

А дальше ты морщишь мозг и читаешь что делает git archive. А если не хочешь закрывать - ну не закрывай. Кто ж тебя заставляет.

Раньше я тут спрашивал - а как загрузить сразу несколько версий проекта в разные папки? А мне ответили (вроде даже вы) - Гит не про это, он про хранение лишь одной версии.

Бля... Система контроля версий "про хранение одной версии". Перечитывай что пишешь, глаза болят читать.

Хочешь "загружать" разные версии в разные папки? Да хоть обзагружайся. Хочешь - полностью клонируй, хочешь - "неполный" клон (shallow), хочешь - архивом версию выдерай.

Ты во всех этих "версиях проекта" изменения делать хочешь? Или один раз посмотрел и стёр?

Т.е. открыть один и тот же проект в разных состояниях на двух параллельно запущенных IDE он тоже не позволяет.

Мнэ. Т.е. гит ещё и твоими IDE управлять должен? Бросай ты эту работу. Вали в америку, магазины обносить.

А как в такой системе смотреть сравнение файлов разных версий?

git diff

#39 
alex445 коренной житель01.03.24 12:33
NEW 01.03.24 12:33 
в ответ MrSanders 01.03.24 10:43
Пользуйся checkout. Как его обозвали гуеделы в твоей студии - найди сам. Обычно его прячут под "switch" (типа переключиться не ветку). Вот в этом чекауте просто выбираешь не имя ветки, а хэш (ид) коммита. Всё. Твой воркспейс будет содержать состояние проекта в этом коммите.
P.S. Почему кнопкожмяки не в состоянии использовать терминологию утилиты, вокруг которой они хреновертят свои красоты я не знаю.

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

#40 
alex445 коренной житель01.03.24 12:35
NEW 01.03.24 12:35 
в ответ MrSanders 01.03.24 11:07
А как в такой системе смотреть сравнение файлов разных версий?

git diff

И что оно мне В КОНСОЛИ покажет, без подключенного какого-нибудь визуального движка?

#41 
alex445 коренной житель01.03.24 12:35
NEW 01.03.24 12:35 
в ответ MrSanders 01.03.24 11:07
Т.е. Гит сам по себе нихрена не умеет, кроме как хранить историю изменений?
Совершенно верно. Ещё немного и у тебя наступит просветление (хотя нет, не наступит, для этого надо думать, прости). Это философия такая. Каждый занимается своим делом и не пытается объять необъятное. Утилитка делает одно дело, но делает его хорошо.

Я шатал такую философию...


#42 
MrSanders коренной житель01.03.24 14:33
NEW 01.03.24 14:33 
в ответ alex445 01.03.24 12:33, Последний раз изменено 01.03.24 14:41 (MrSanders)
Потому что я работаю над текущей задачей, и иногда нужно глянуть, что там было раньше. Не закрывая и не прерывая текущую задачу.

А что, в студии нет "Compare to" (или with) для всего проекта?
Вот так это выглядит в древнем эклипсе:

#43 
MrSanders коренной житель01.03.24 14:39
NEW 01.03.24 14:39 
в ответ alex445 01.03.24 12:35
И что оно мне В КОНСОЛИ покажет, без подключенного какого-нибудь визуального движка?

Шайтан! Буковки покажет. Даже разными цветами. А если параметры подучить то можно ещё и под свои хотелки подстроить.

Если изменений много, то удобнее их, конечно, в IDE изучать.

#44 
AlexNek патриот01.03.24 17:45
AlexNek
NEW 01.03.24 17:45 
в ответ alex445 01.03.24 09:45
смотреть сравнение файлов разных версий?

Не все будут довольны, но есть менюшка


https://github.com/gitextensions/gitextensions - как с VS2022, не знаю.

Для сравнения тоже есть софтик, но не бесплатный

https://www.scootersoftware.com/

#45 
alex445 коренной житель01.03.24 19:36
NEW 01.03.24 19:36 
в ответ MrSanders 01.03.24 14:33, Последний раз изменено 01.03.24 19:36 (alex445)
А что, в студии нет "Compare to" (или with) для всего проекта?

В Студии есть. В консольном Гите нет.


Шайтан! Буковки покажет. Даже разными цветами. А если параметры подучить то можно ещё и под свои хотелки подстроить.

Этой абракадаброй только детей пугать. Вот как надо. Или хотя бы так.

#46 
Murr патриот01.03.24 20:30
Murr
NEW 01.03.24 20:30 
в ответ alex445 01.03.24 19:36

В Студии есть. В консольном Гите нет.

------

на простой вопросик:

если Студия пользует ГИТ для всех операций ГИТом. то как она получает то чего нету? смущ

#47 
alex445 коренной житель01.03.24 21:07
NEW 01.03.24 21:07 
в ответ Murr 01.03.24 20:30

Она то, что получает, представляет в более удобном виде, чем консольный Гит. МС смог, а Линус - наплевал. Потому что он ублюдок и эгоист, поэтому линускойды должны страдать. ))

#48 
MrSanders коренной житель02.03.24 11:39
NEW 02.03.24 11:39 
в ответ alex445 01.03.24 21:07, Последний раз изменено 02.03.24 12:03 (MrSanders)
Она то, что получает, представляет в более удобном виде, чем консольный Гит.

Ололёшенька, ты - тупой. А я - добрый. Повторю для тебя в очередной раз. Утилиты занимаются своим делом. Хочешь гуёвых красот - можешь настроить гит чтобы он использовал твой любимый diff. Тот же beyond compare. Если мозгов хватит, конечно.


Для сравнения какого угодно состояния используется git diff .. <файл или каталог>. Настроишь bc он тебе не в консоли покажет, а bc запустит. Если у тебя этот проект уже в IDE, пользуйся IDE, кто ж тебе мешает. Только ради бога, не пытайся сделать в своём IDE что-то вроде interactive rebase. Сломаешь всё.


Или хотя бы так.

Лапонька, а ты тупее, чем я думал. Ты хотя б посмотрел откуда ты это картинку спёр? Со стековерфлоу. Как пример работы git diff с включенным diff-highlight.
Так что оказывается текстовый вывод diff-а тебя устраивает. Ой.

А почему ж в моём примере не было подсвеченных изменений? А патамушта там целиком строки менялись. Какая досада.

#49 
alex445 коренной житель02.03.24 13:12
NEW 02.03.24 13:12 
в ответ MrSanders 02.03.24 11:39, Последний раз изменено 02.03.24 13:12 (alex445)
Она то, что получает, представляет в более удобном виде, чем консольный Гит.
Ололёшенька, ты - тупой. А я - добрый. Повторю для тебя в очередной раз. Утилиты занимаются своим делом. Хочешь гуёвых красот - можешь настроить гит чтобы он использовал твой любимый diff. Тот же beyond compare. Если мозгов хватит, конечно.
Для сравнения какого угодно состояния используется git diff .. <файл или каталог>. Настроишь bc он тебе не в консоли покажет, а bc запустит. Если у тебя этот проект уже в IDE, пользуйся IDE, кто ж тебе мешает. Только ради бога, не пытайся сделать в своём IDE что-то вроде interactive rebase. Сломаешь всё.

Вы же тут топили за консоль, а кто не в консоли, тот типа тупой? Нельзя в гуе диффы показывать - отупеешь.


Или хотя бы так.
Лапонька, а ты тупее, чем я думал. Ты хотя б посмотрел откуда ты это картинку спёр? Со стековерфлоу. Как пример работы git diff с включенным diff-highlight.
Так что оказывается текстовый вывод diff-а тебя устраивает. Ой.
А почему ж в моём примере не было подсвеченных изменений? А патамушта там целиком строки менялись. Какая досада.

Еретик, нельзя божественный ванильный гит осквернять всякими левыми надстройками! Если Линус посчитал, что это не надо, и не встроил, значит это идеал. А мимикрировать консоль под гуй - это становиться тупым по вашей идеологии.


Так-то я сказал "хотя бы", т.е. некоторая минималка, которую при первой возможности лучше заменю на вариант в той же Студии. Собственно, студийный вариант и использую. А раскрашивать консоль разномастными надстройками - это какие-то шизоидные полумеры. Если очевидно, что нужен гуй, надо делать гуй, а не пытаться и рыбку съесть, и в воду не влезть.

#50 
MrSanders коренной житель03.03.24 11:35
NEW 03.03.24 11:35 
в ответ alex445 02.03.24 13:12

Одно не пойму... Дебил или настолько плохой тролль? Скучно, олёша.

#51 
1 2 3 все