Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, AlexNek, Вы писали:
AN>>>>Уже пару раз бывало, сижу пытаюсь понять/разобраться отчего какая-то операция на SVN не идет. AVK>>>Странно, почему у меня такого не бывает. AN>>Ты просто делаешь одно и тоже не выходя за рамки. Последнее, что я немного помню, переименовал файл в студии (причем забыл, что эта зараза не любит просто смену регистра) и все, затык — ни туда ни сюда.
ГВ>Удалить-закоммитить-добавить-закоммитить. Проверено, помогает. Будет несколько сложнее восстановить историю изменений, но это, как правило, нужно крайне редко.
Да в последнем случае, что уж не пробовал. Никаких операций нельзя было сделать. И сервер был внешний. (Именно это не на работе было) Пришлось перейти на TFS и там поиграться с этими файлами. Потом через пару дней все восстановилось.
AN>>>> Приходит админ, у него тоже нифига не получается. Ну и зачем еще время тратить, когда можно удалить и скачать по новому. AVK>>>Это, значит, админ так у вас рабочие копии сносит? AN>>Ну, не так грубо, вначале делается локальная копия. Потом восстанавливается работоспособность, а после исходники.
ГВ>И для этого нужен аж целый админ??? Да у вас там синекура — админ папки разработчику чистит.
Ну он не только для этого, еще кофе принести
"Поигрался он" пару минут, ничего не получается. Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое, если и это ничего не дает тогда можно копать дальше.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Andrii_Avramenko, Вы писали:
AVK>>>А зачем всякую фигню на сотни мег класть рядом с исходниками? A_A>>Никакой фигни — куча сорцов, причем процентов 70 — легаси кода.
ГВ>Папки на сотни мегабайт исходников легаси-кода? В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6...
На днях приведу скриншот
Re[19]: Как лучше подключать подпроекты - DLL или исходники
Здравствуйте, AlexNek, Вы писали:
ГВ>>>>Не знаю, я просто не вижу смысла работать с большим солюшеном, когда можно ограничиться маленьким — хотя бы из-за того, что упрощается навигация по дереву проектов. AN>>>Для этого есть папочки в солюшине. ГВ>>Всё равно навигация усложняется. И потом, эти самые папки — они тоже "для всех", лишних для себя лично не понаделаешь. AN>Если солюшин "личная", то и папочки будут также личными. А отчего навигация усложняется? Вместо "отсутствующих проектов" будет просто одна папочка с именем, более того, обнаружив ее пустой можно четко сказать что это обкоцанная солюшин.
Я имел в виду, что эти папочки будут делать в общем, "большом" солюшене со всеми исходниками.
AN>>>Не все обновления происходят, ну в одном проекте закоммитили данные, а во втором так и осталось.
ГВ>>Что осталось? И студия не сказала, что проект обновился? AN>Речь о "соурсе контрол" прежде всего. В одном проекте исходники имеют статус "закоммитены", в другом нет. AN>>>Изменения проекта в одном иногда могли приводить к затыку в другой. ГВ>>Странно, а что вы за плагины используете? AN>Мы вообще больше грешили на студию.
Странно, я такого именно за студией не замечал.
ГВ>>Не понимаю. Если есть риск случайно поменять и закоммитить исходники из большого солюшена, пользуйся компактным солюшеном с небольшим количеством проектов. Если лениво переключаться — ССЗБ. AN>Не сколько лениво, сколько неудобно. Сейчас просто нажимаешь ф5 и ждешь запуска проги. А тут получается нужно бильдить в одном, запускаться в другом, да и еще отключать нугет (которого впрочем пока и нет)
Зачем? "Маленький солюшен" по идее, содержит только те проекты, которые нужны тебе в исходных текстах. "Большой солюшен" содержит все проекты, но им имеет смысл пользоваться для того, чтобы собрать библиотеки, которые нужны тебе только в бинарном виде.
Допустим, у нас есть четыре проекта: LibData, LibLogic, LibCustom, WholeApp. Зависит они друг от друга так:
— LibData — ни от кого не зависит;
— LibLogic — зависит от LibData (проставлен референс на LibData.dll);
— LibCustom — зависит от LibData и LibLogic (проставлен референс на LibData.dll и LibLogic.dll);
— WholeApp — зависит от LibLogic и LibCustom (проставлен референс на LibLogic.dll и LibCustom.dll).
Допустим, что нужно работать только с двумя модулями: LibCustom и WholeApp.
Делаем два солюшена:
Project
LargeSolution
MySolution
LibData
*
LibLogic
*
LibCustom
*
*
WholeApp
*
*
Один раз запускаем LargeSolution, чтобы собрать все проекты. Потом открываем MySolution и работаем только в нём. Поскольку ссылки проставлены на бинарные сборки, никаких проблем с отсутствующими проектами нет — нужные бинарники мы собрали на предыдущем шаге. Зато теперь ничего лишнего не мешается. ИМХО, единственный более или менее заметный недостаток — нужно вручную проставить зависимости проектов, чтобы они собирались в правильном порядке. Как раз поэтому я советовал бы сначала сделать один большой солюшен, проставить в нём все зависимости (project dependencies), потом скопировать его под другим именем и выкинуть из него лишние проекты — тогда в солюшене сохранятся правильные зависимости для оставшихся.
AN>Да и при бильде все равно получаются "локальные Длл-ки", что вроде неприемлимо.
Что значит "локальные длл-ки" и почему они не приемлемы? Как я понимаю, в любом случае всё прогоняется через билд-сервер.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[9]: Как лучше подключать подпроекты - DLL или исходники ч
Здравствуйте, Andrii_Avramenko, Вы писали:
Z>>Это по вашему сценарию: A_A>>>Нет. Это в корне неправильно. Они что в разных полушариях земли живут без средств коммуникации? A_A>>>Первый кто готов — говорит второму, что закончил и залился. A_A>>>Второй отвественен за релиз новой версии для всех нуждающихся. A_A>Дык, я и не отрицаю-то A_A>Кто ждет-то и чего ждет, лучше объясните.
Коллега ждет, пока первый ему скажет, что готов. Либо что залил. Чтобы начать править следующий баг.
A_A>>>Может я не понял шутку юмора, но мы msbuild юзаем только для модификаций .msbuild скриптов.
Z>>Эта фраза говорит о вашей полной некомпетентности в вопросах сборки. Зачем лезть с безапелляционными заявлениями в темы о которых вы практически ничего не знаете? A_A>"А судьи кто?" (С) A_A>А можно по-конкретней?
Вообще все предложение выглядит как "мы только ложкой банка огурцы".
Вкратце, msbuild не предназначен для модификации скриптов. И сложно обойти его использование по прямому назначению, программируя под .net.
A_A>>>Ну, и любимый кейс:
A_A>>>Блин, какого фига на CI тесты падают, а локально работают?
Z>>Видимо очень любимый, раз не желаете с ним расставаться. A_A>А Вы как с ним расстались?
Легко, идентичное окружение дает идентичные результаты. Не будет нескольких версий — не будет расхождений в тестах.
Re[7]: Как лучше подключать подпроекты - DLL или исходники ч
Здравствуйте, AlexNek, Вы писали:
Z>>Я русским языком написал как. Надо подключать те dll которые получаются в процессе сборки исходников. AN>Так это и сеть локальная версия Длл-ки.
Я в вашей терминологии слегка запутался. Значит оставьте только локальную. Должна быть одна версия для всех, кот чекаутнет вашу ревизию.
Z>>Исключение — внешние, по отношению к проекту, библиотеки. Для них лучше использовать NuGet. AN>Внешние, можно сказать не меняются.
Это как раз полезно.
Re[10]: Как лучше подключать подпроекты - DLL или исходники
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, Andrii_Avramenko, Вы писали:
Z>>>Это по вашему сценарию: A_A>>>>Нет. Это в корне неправильно. Они что в разных полушариях земли живут без средств коммуникации? A_A>>>>Первый кто готов — говорит второму, что закончил и залился. A_A>>>>Второй отвественен за релиз новой версии для всех нуждающихся. A_A>>Дык, я и не отрицаю-то A_A>>Кто ждет-то и чего ждет, лучше объясните.
Z>Коллега ждет, пока первый ему скажет, что готов. Либо что залил.
Нет, не ждет. Он занимается своей работой. Зачем ему кого-то ждать? Z>Чтобы начать править следующий баг.
Откуда у нас "вдруг" взялся какой-то следующий баг?
Что это за девелоперы, что при правке одного бага, они "рождают" другие?
A_A>>>>Может я не понял шутку юмора, но мы msbuild юзаем только для модификаций .msbuild скриптов.
Z>>>Эта фраза говорит о вашей полной некомпетентности в вопросах сборки. Зачем лезть с безапелляционными заявлениями в темы о которых вы практически ничего не знаете? A_A>>"А судьи кто?" (С) A_A>>А можно по-конкретней?
Z>Вообще все предложение выглядит как "мы только ложкой банка огурцы".
Какое конкретно предложение? Z>Вкратце, msbuild не предназначен для модификации скриптов.
И для работы с .msbuild файлами не предназначен?
Вот это "компетентность" Z>И сложно обойти его использование по прямому назначению, программируя под .net.
А Вы пытались обойти? Сочувствую. MSBuild The Microsoft Build Engine (MSBuild) is a platform for building applications.
Выходит, что мы, юзая систему для автоматизации сборки приложений, которая предназначена для автоматизации сборки приложений,
являемся некомпетентными?
В логике Вам не откажешь.
A_A>>>>Ну, и любимый кейс: A_A>>>>Блин, какого фига на CI тесты падают, а локально работают?
Z>>>Видимо очень любимый, раз не желаете с ним расставаться. A_A>>А Вы как с ним расстались?
Z>Легко, идентичное окружение дает идентичные результаты.
Идентичное окружение — это когда сам для себя в своей песочнице пишешь проект, который никто юзать не будет. Z>Не будет нескольких версий — не будет расхождений в тестах.
Расхождений в тестах у нас из-за версионности компонентов никогда и не было.
И откуда Вы это придумали?
Re[10]: Как лучше подключать подпроекты - DLL или исходники
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Andrii_Avramenko, Вы писали:
AVK>>>А зачем всякую фигню на сотни мег класть рядом с исходниками? A_A>>Никакой фигни — куча сорцов, причем процентов 70 — легаси кода.
ГВ>Папки на сотни мегабайт исходников легаси-кода?
Это транк одного из репозиториев. TempTrunk.jpg
Более гектара исходников с бинарными зависимостями без документации, файлов с данными, ресурсов. ГВ>В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6...
Хорошее такое, воображение
Здравствуйте, AlexNek, Вы писали:
AN>"Поигрался он" пару минут, ничего не получается.
Значит такая у него компетенция.
AN> Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое
И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, Andrii_Avramenko, Вы писали:
ГВ>>Папки на сотни мегабайт исходников легаси-кода? A_A>Это транк одного из репозиториев. A_A>TempTrunk.jpg A_A>Более гектара исходников с бинарными зависимостями без документации, файлов с данными, ресурсов.
Так исходников там сколько от этого объёма?
ГВ>>В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6... A_A>Хорошее такое, воображение
Это из осознанного, дальше вообще химеры из подсознания, от них — полный улёт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[16]: Как лучше подключать подпроекты - DLL или исходники
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, AlexNek, Вы писали:
AN>>"Поигрался он" пару минут, ничего не получается.
AVK>Значит такая у него компетенция.
А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?
Помнишь байку про специалиста? Оригинальный тект забылся, но где то так: Поломалась сложная машина на заводе, весь завод стоит, все на ушах, не могут найти в чем причина. Чертежи разложили, прошлись по каждой детальке, ничего не помогает. Через день решили позвать Специалиста, он пришел, пощупал, понюхал, послушал, попросил кувалду и вдарил по одному месту — все заработало. Когда он озвучил сумму гонорара, директор офигел и спросил, отчего такая сумма за 10 минут работы? — "Оттого, что я знаю где и как нужно ударить".
AN>> Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое
AVK>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.
Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога. Тем более, это только с некоторыми каталогами бывает. Да и то сами теперь делаем.
Здравствуйте, AlexNek, Вы писали:
AN>А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?
В 99% случаев помогает просто апдейт. В остальных достаточно найти проблемный каталог и удалить только его.
AVK>>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил. AN>Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога
Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится?
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, AlexNek, Вы писали:
AN>>А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?
AVK>В 99% случаев помогает просто апдейт.
-Вчера один решил сделать апдейт черепахи, так она почти целый день шуршала и в итоге пришлось все по новому грузить.
-Сделали как-то апдейт плагину для новых "вкусностей", так все старые файлы плагина оказались несовместимы.
И как апдейт поможет восстановить "достук к файлам", разве что из-за перегрузки сервера. AVK>В остальных достаточно найти проблемный каталог и удалить только его.
ну именно так и поступали, может я непонятно описАл.
AVK>>>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил. AN>>Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога
AVK>Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится?
А где я говорил, что вся копия сносится?
Здравствуйте, AlexNek, Вы писали:
AVK>>В 99% случаев помогает просто апдейт. AN>-Вчера один решил сделать апдейт черепахи
Апдейт рабочей копии.
AVK>>В остальных достаточно найти проблемный каталог и удалить только его. AN>ну именно так и поступали, может я непонятно описАл.
Ты описал удаление рабочей копии, в качестве аргумента почему тебе приходится делать чекаут с нуля.
AVK>>Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится? AN>А где я говорил, что вся копия сносится?
Т.е. ты сам уже не помнишь? Силен.
AVK>>>>Да ну нафик. Долгое время это сколько? 1 минуту? 2?
AN>>>Бывает и часы, если все брать с нуля.
AVK>>А зачем все брать с нуля? И часы — это, видимо, опять жлобство работодателя.
AN>А когда уже все перепробовал и не пашет Либо бывает не коммитится, либо не берется.
AN>Там получается некоторое кол-во гигов.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, AlexNek, Вы писали:
AVK>>>Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится? AN>>А где я говорил, что вся копия сносится?
AVK>Т.е. ты сам уже не помнишь? Силен. AVK>
AVK>>>>>Да ну нафик. Долгое время это сколько? 1 минуту? 2?
AN>>>>Бывает и часы, если все брать с нуля.
AVK>>>А зачем все брать с нуля? И часы — это, видимо, опять жлобство работодателя.
AN>>А когда уже все перепробовал и не пашет Либо бывает не коммитится, либо не берется.
AN>>Там получается некоторое кол-во гигов.
ааа... так это совершенно разные контексты были. В этом я просто попробовал вспомнить хоть какой то пример.
И как раз просто по обезьянни сделали, как было с каталогами. Может еще были какие то варианты, но не закрепились.То бишь с админом это у меня ну никак не ассоциировалось.