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

Вопросы по Гит, после SVN

661  1 2 3 4 5 все
AlexNek патриот28.07.17 19:15
AlexNek
NEW 28.07.17 19:15 
в ответ Simple 28.07.17 09:32
По-моему, ты еще не понял, что локальная копия репозитория - это полная копия репозитория на сервере.

Может тогда обьясните принцип работы данного ключика?

Use the --depth option in git clone:

Create a shallow clone with a history truncated to the specified number of commits.

Ну и вариант, когда коллега залил баальшую ветку которая мне нафиг не нужна. Почему у меня стоит значёк , что информация доступна только на сервере?


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

#41 
AlexNek патриот28.07.17 19:19
AlexNek
NEW 28.07.17 19:19 
в ответ MrSanders 28.07.17 10:34
Создает новый коммит, который выполняет такие же изсенения как и "копируемый".

где именно? В какой ветке?


-->Убрать из мастера и создать в ветке

СВН-вская копия получилась без веток в коммитах, просто идет одна длинная кишка, хотя по файлам видно что изменения исключительно в ветке, да и ветка моя, так именно и делал.

#42 
  JosefSchwejk постоялец28.07.17 21:14
NEW 28.07.17 21:14 
в ответ MrSanders 28.07.17 10:31

Вообще-то, что Bitbucket, что Github уже в своем роде сервера, которые позволяют делать всевозможные танцы с бубном. Можно на стороне сервера (не git, просто машина в сети) установить тот же Bonobo или другой возможный аналог. И уже с ним устраивать светопреставления, Элисы и Бобы, приватные и публичные ключи.


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

#43 
  JosefSchwejk постоялец28.07.17 21:17
NEW 28.07.17 21:17 
в ответ AlexNek 28.07.17 19:04

Никаких проблем. Только это не сервер, а обычный удаленный репозиторий получится. Не более. Для полноценного сервера нужен демон на той стороне. Что-то Вы не туда копаете который день :-) А меня упрекали в сроках!

#44 
AlexNek патриот28.07.17 21:27
AlexNek
NEW 28.07.17 21:27 
в ответ JosefSchwejk 28.07.17 21:17
Что-то Вы не туда копаете который день

Стояла задача получить что то рабочее на этой неделе, а не пользовать исключительно сервер.

#45 
  JosefSchwejk постоялец28.07.17 21:39
NEW 28.07.17 21:39 
в ответ AlexNek 28.07.17 21:27

Ну так это делается одной командой git init -bare. Чего там курить неделю. С настройками демона, да, можно на пару дней зависнуть. Кстати, я Вам давал давеча ссылку - посмотрите видео, рекомендую.

#46 
Simple Nothing is f*cked28.07.17 22:02
Simple
NEW 28.07.17 22:02 
в ответ AlexNek 28.07.17 19:15

Ни разу не пользовался. Максимальный репо в моей практике был 2 гб (замусоренный бинарниками и прочим), но никаких проблем это не создает в повседневной работе.

#47 
Simple Nothing is f*cked28.07.17 22:04
Simple
NEW 28.07.17 22:04 
в ответ JosefSchwejk 28.07.17 21:14
Плюс по всему что Bitbucket, что Github для продакшн-кода так просто и использовать грешно.

Вы имеете в виду github.com? Мы упоминали GitLab, а не GitHub.

У нас стоит на локальном сервере полный стэк Atlassian, и мы туда все наши проекты пихаем. Какие причины их не использовать?

#48 
MrSanders старожил28.07.17 22:46
NEW 28.07.17 22:46 
в ответ AlexNek 28.07.17 19:15
Use the --depth option in git clone

Ну, давайте я поясню. Если выстрелить себе в ногу, не надо удивляться что ходить неудобно :)

depth "обрезает" историю. При depth 1 копируется текущее состояние master-а и всё. Никакой информации (вот тут не уверен на 100%, может информация "был коммит с комментарием" и будет, но не будет данных о состоянии проекта в этом коммите) о предыдущих коммитах. Работать с таким - вредительство. Используется в основном для автоматических сборок. Им история не нужна.

Ну и вариант, когда коллега залил баальшую ветку которая мне нафиг не нужна. Почему у меня стоит значёк , что информация доступна только на сервере?

А тут ответ сложнее.

1. Когда мы делаем git clone (без ограничения глубины!) мы копируем всё. (за исключением некоторых настроек, см. --mirror) Но. Локальные ветки не создаются.
Например. На сервере есть master и development после git clone делаем git branch и видим... Только *master. Но стоит сделать git branch -r как мы увидим и origin/master и origin/development.

Если хочется работать с другой веткой просто делаем git checkout development. Это создасть локальную ветку development, которая будет ссылаться на origin/development. Никакие данные при выполнении этой команды с сервера не копируются. Они уже у нас.

Если вы сделали git clone и после этого "стоит значёк , что информация доступна только на сервере" выбросьте нафиг этот гуй. Он тупой.

2. Склонировали репо и работали с ним какое-то время. Коллега заливает на центральную репо свою ветку. Локально у нас про нее нет никакой информации. Мы даже не знаем что она существует. Можно или сделать git fetch (забрать всю новую инфу с сервера, со всеми коммитами, новыми файлами и те пе, может длиться) или можем посмотреть а что там есть на сервере с помощью git ls-remote

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

Создает новый коммит, который выполняет такие же изсенения как и "копируемый".
где именно? В какой ветке?

В текущей.

СВН-вская копия получилась без веток в коммитах, просто идет одна длинная кишка, хотя по файлам видно что изменения исключительно в ветке, да и ветка моя, так именно и делал.

Тут или хреново сконвертировали (git-svn хорошо понимает свн-овские ветки) или есть недопонимание. Если параллельной разработки никогда не было (сделали ветку, поработали в ветке, потом замержили ветку назад в транк, при этом в самом транке никаких новых коммитов не было) то гитовский лог будет выглядеть как линия.
Может так понятнее... Если в svn было

trunk: A - B  -  -  -  F
            \         /
branch:      C - D - E


То в графе коммитов в гите вы увидите A- B - C - D - E - F

Но ветка "branch" будет на месте. Ее HEAD будет показывать на E (а master на F). Хотя не уверен, будет ли F присутствовать. Он в принципе не нужен...


А что говорит git branch -a?

#49 
MrSanders старожил28.07.17 22:49
NEW 28.07.17 22:49 
в ответ JosefSchwejk 28.07.17 21:14
Вообще-то, что Bitbucket, что Github уже в своем роде сервера, которые позволяют делать всевозможные танцы с бубном.

И? Я говорю что можно работать без них.

Плюс по всему что Bitbucket, что Github для продакшн-кода так просто и использовать грешно.

Почему?

Да и корпоративный Bitbucket, например, тоже не в каждом случае можно использовать и не в каждом проекте.

А конкретнее можно? Пример проекта, который нельзя хранить в битбакете не опишите?

#50 
MrSanders старожил28.07.17 22:50
NEW 28.07.17 22:50 
в ответ Simple 28.07.17 22:04

GitHub тоже можно купить. Но геморройно. И дорого. И нафиг надо.

#51 
AlexNek патриот28.07.17 23:26
AlexNek
NEW 28.07.17 23:26 
в ответ JosefSchwejk 28.07.17 21:39
Ну так это делается одной командой git init -bare.

Это создается пустой репо.

А в задаче требоваловась пользовать готовые проекты из SVN в Гите.

#52 
AlexNek патриот28.07.17 23:40
AlexNek
NEW 28.07.17 23:40 
в ответ MrSanders 28.07.17 22:46
Работать с таким - вредительство.

Я не говорю, что надо работать. Речь вроде шла, что локальная копия всегда полностью идентична удаленной.

Про всё остальное - не исследовал и в ближайшее время уже не получится.


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

именно этот вариант и имел в виду.


git-svn хорошо понимает свн-овские ветки

не уверен, похоже он знает только одну версию svn


А что говорит git branch -a?

не имею никакого понятия, так как командами не пользуюсь, но все новые ветки (гитовские) и тэги видны, а старые нет.

#53 
AlexNek патриот28.07.17 23:43
AlexNek
NEW 28.07.17 23:43 
в ответ MrSanders 28.07.17 22:49
Пример проекта, который нельзя хранить в....

Концепция начальства следующая - никаких исходников на сторонних серверах.

#54 
  JosefSchwejk постоялец29.07.17 08:54
NEW 29.07.17 08:54 
в ответ MrSanders 28.07.17 22:49

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


#55 
Simple Nothing is f*cked29.07.17 09:44
Simple
NEW 29.07.17 09:44 
в ответ AlexNek 28.07.17 23:43

Имеется в виду установленный у себя на сервере Bitbucket, а не bitbucket.com.

#56 
MrSanders старожил29.07.17 10:18
NEW 29.07.17 10:18 
в ответ AlexNek 28.07.17 23:40
Я не говорю, что надо работать. Речь вроде шла, что локальная копия всегда полностью идентична удаленной.

Ну, тут, похоже недопонимание. После обычного clone (т.е. в 99% случаев) локальная репо содержит те же объекты что и удаленная. Кроме depth есть и другие параметры, ограничивающие что мы копируем. Но всё это очень редко используется. А, да, есть еще LFS... Ну и изменения в удаленной репо не попадают на наш локальный компьютер "автоматически". Их надо сначала скачать.

Ну и именно этот вариант и имел в виду.

Тогда все хорошо. При следующем fetch-е все данные окажутся в локальной репо.

не уверен, похоже он знает только одну версию svn

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

не имею никакого понятия, так как командами не пользуюсь,

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

#57 
AlexNek патриот29.07.17 10:20
AlexNek
NEW 29.07.17 10:20 
в ответ Simple 29.07.17 09:44
Имеется в виду установленный у себя на сервере Bitbucket

А какой смысл платить 1800 долларов за сервер?

#58 
MrSanders старожил29.07.17 10:21
NEW 29.07.17 10:21 
в ответ AlexNek 28.07.17 23:43, Последний раз изменено 29.07.17 10:24 (MrSanders)

Мнэ... А что вы называете "сторонним сервером"? Если я на своем рабочем компе установлю битбакет, он сторонний сервер или нет?

А какой смысл платить 1800 долларов за сервер?

Ну, лицензия на 10 пользователей стоит 10 долларов. Есть бесплатный гитлаб.

А смысл... Наверное, чтобы соответсвовать

Концепция начальства следующая - никаких исходников на сторонних серверах.
#59 
MrSanders старожил29.07.17 10:26
NEW 29.07.17 10:26 
в ответ JosefSchwejk 29.07.17 08:54

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

#60 
1 2 3 4 5 все