Re[14]: Как лучше подключать подпроекты - DLL или исходники
От: AlexNek  
Дата: 27.11.11 12:32
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, AlexNek, Вы писали:


AN>>>>Уже пару раз бывало, сижу пытаюсь понять/разобраться отчего какая-то операция на SVN не идет.

AVK>>>Странно, почему у меня такого не бывает.
AN>>Ты просто делаешь одно и тоже не выходя за рамки. Последнее, что я немного помню, переименовал файл в студии (причем забыл, что эта зараза не любит просто смену регистра) и все, затык — ни туда ни сюда.

ГВ>Удалить-закоммитить-добавить-закоммитить. Проверено, помогает. Будет несколько сложнее восстановить историю изменений, но это, как правило, нужно крайне редко.

Да в последнем случае, что уж не пробовал. Никаких операций нельзя было сделать. И сервер был внешний. (Именно это не на работе было) Пришлось перейти на TFS и там поиграться с этими файлами. Потом через пару дней все восстановилось.

AN>>>> Приходит админ, у него тоже нифига не получается. Ну и зачем еще время тратить, когда можно удалить и скачать по новому.

AVK>>>Это, значит, админ так у вас рабочие копии сносит?
AN>>Ну, не так грубо, вначале делается локальная копия. Потом восстанавливается работоспособность, а после исходники.

ГВ>И для этого нужен аж целый админ??? Да у вас там синекура — админ папки разработчику чистит.

Ну он не только для этого, еще кофе принести
"Поигрался он" пару минут, ничего не получается. Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое, если и это ничего не дает тогда можно копать дальше.
Cообщение написано в << RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461>>
Re[10]: Как лучше подключать подпроекты - DLL или исходники
От: Andrii_Avramenko Украина  
Дата: 27.11.11 14:12
Оценка: 1 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Andrii_Avramenko, Вы писали:


AVK>>>А зачем всякую фигню на сотни мег класть рядом с исходниками?

A_A>>Никакой фигни — куча сорцов, причем процентов 70 — легаси кода.

ГВ>Папки на сотни мегабайт исходников легаси-кода? В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6...


На днях приведу скриншот
Re[19]: Как лучше подключать подпроекты - DLL или исходники
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 27.11.11 17:19
Оценка:
Здравствуйте, 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.

Делаем два солюшена:

ProjectLargeSolutionMySolution
LibData*
LibLogic*
LibCustom**
WholeApp**
Один раз запускаем LargeSolution, чтобы собрать все проекты. Потом открываем MySolution и работаем только в нём. Поскольку ссылки проставлены на бинарные сборки, никаких проблем с отсутствующими проектами нет — нужные бинарники мы собрали на предыдущем шаге. Зато теперь ничего лишнего не мешается. ИМХО, единственный более или менее заметный недостаток — нужно вручную проставить зависимости проектов, чтобы они собирались в правильном порядке. Как раз поэтому я советовал бы сначала сделать один большой солюшен, проставить в нём все зависимости (project dependencies), потом скопировать его под другим именем и выкинуть из него лишние проекты — тогда в солюшене сохранятся правильные зависимости для оставшихся.

AN>Да и при бильде все равно получаются "локальные Длл-ки", что вроде неприемлимо.


Что значит "локальные длл-ки" и почему они не приемлемы? Как я понимаю, в любом случае всё прогоняется через билд-сервер.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[9]: Как лучше подключать подпроекты - DLL или исходники ч
От: Ziaw Россия  
Дата: 28.11.11 03:08
Оценка: +1
Здравствуйте, 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 или исходники ч
От: Ziaw Россия  
Дата: 28.11.11 03:27
Оценка:
Здравствуйте, AlexNek, Вы писали:

Z>>Я русским языком написал как. Надо подключать те dll которые получаются в процессе сборки исходников.

AN>Так это и сеть локальная версия Длл-ки.

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

Z>>Исключение — внешние, по отношению к проекту, библиотеки. Для них лучше использовать NuGet.

AN>Внешние, можно сказать не меняются.

Это как раз полезно.
Re[10]: Как лучше подключать подпроекты - DLL или исходники
От: Andrii_Avramenko Украина  
Дата: 28.11.11 06:37
Оценка: :)
Здравствуйте, 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 Украина  
Дата: 28.11.11 18:45
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Andrii_Avramenko, Вы писали:


AVK>>>А зачем всякую фигню на сотни мег класть рядом с исходниками?

A_A>>Никакой фигни — куча сорцов, причем процентов 70 — легаси кода.

ГВ>Папки на сотни мегабайт исходников легаси-кода?

Это транк одного из репозиториев.
TempTrunk.jpg
Более гектара исходников с бинарными зависимостями без документации, файлов с данными, ресурсов.
ГВ>В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6...
Хорошее такое, воображение
Re[11]: Image hosting
От: Qbit86 Кипр
Дата: 28.11.11 19:00
Оценка: +1
Здравствуйте, Andrii_Avramenko, Вы писали:

A_A>TempTrunk.jpg


Для выкладывания картинок предпочтительнее использовать не файлообменник общего назначения с рекламой увеличения длины интеллекта, а хостинги картинок, например:
http://imgur.com/
http://tinypic.com/
http://imageshack.us/
Глаза у меня добрые, но рубашка — смирительная!
Re[15]: Как лучше подключать подпроекты - DLL или исходники
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.11.11 20:32
Оценка: +1
Здравствуйте, AlexNek, Вы писали:

AN>"Поигрался он" пару минут, ничего не получается.


Значит такая у него компетенция.

AN> Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое


И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[11]: Как лучше подключать подпроекты - DLL или исходники
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 28.11.11 20:50
Оценка:
Здравствуйте, Andrii_Avramenko, Вы писали:

ГВ>>Папки на сотни мегабайт исходников легаси-кода?

A_A>Это транк одного из репозиториев.
A_A>TempTrunk.jpg
A_A>Более гектара исходников с бинарными зависимостями без документации, файлов с данными, ресурсов.

Так исходников там сколько от этого объёма?

ГВ>>В воображении сразу рисуется что-то вроде хардкорного C и C++ имени VC6...

A_A>Хорошее такое, воображение

Это из осознанного, дальше вообще химеры из подсознания, от них — полный улёт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[16]: Как лучше подключать подпроекты - DLL или исходники
От: AlexNek  
Дата: 29.11.11 18:04
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, AlexNek, Вы писали:


AN>>"Поигрался он" пару минут, ничего не получается.


AVK>Значит такая у него компетенция.

А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?
Помнишь байку про специалиста? Оригинальный тект забылся, но где то так: Поломалась сложная машина на заводе, весь завод стоит, все на ушах, не могут найти в чем причина. Чертежи разложили, прошлись по каждой детальке, ничего не помогает. Через день решили позвать Специалиста, он пришел, пощупал, понюхал, послушал, попросил кувалду и вдарил по одному месту — все заработало. Когда он озвучил сумму гонорара, директор офигел и спросил, отчего такая сумма за 10 минут работы? — "Оттого, что я знаю где и как нужно ударить".

AN>> Разбираться дольше невыгодно, нужно разработчика "запустить" побыстрее. А удалить и загрузить самое быстрое


AVK>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.

Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога. Тем более, это только с некоторыми каталогами бывает. Да и то сами теперь делаем.
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Re[17]: Как лучше подключать подпроекты - DLL или исходники
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.11.11 18:07
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?


В 99% случаев помогает просто апдейт. В остальных достаточно найти проблемный каталог и удалить только его.

AVK>>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.

AN>Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога

Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится?
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[18]: Как лучше подключать подпроекты - DLL или исходники
От: AlexNek  
Дата: 29.11.11 19:19
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, AlexNek, Вы писали:


AN>>А какие будут лучшие предложения? Изучить код SVN/Черепахи и найти источник проблем?


AVK>В 99% случаев помогает просто апдейт.

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

AVK>>>И все конфиги, батники, логи и что там еще разработчик нешарабельного наплодил — все коту под хвост Похоже, на админе твой работодатель тоже съэкономил.

AN>>Я же вроде уже писал, что вначале все копируется, затем восстанавливается работоспобность, а затем восстанавливается первоначальное состояние рабочего каталога

AVK>Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится?

А где я говорил, что вся копия сносится?
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Re[19]: Как лучше подключать подпроекты - DLL или исходники
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.11.11 19:25
Оценка:
Здравствуйте, 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>>
AVK Blog
Re[20]: Как лучше подключать подпроекты - DLL или исходники
От: AlexNek  
Дата: 30.11.11 17:43
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, AlexNek, Вы писали:


AVK>>>Ты ж только что рассказывал про много много гигабайтов рабочей копии. Это развлечение с копированием сколько длится?

AN>>А где я говорил, что вся копия сносится?

AVK>Т.е. ты сам уже не помнишь? Силен.

AVK>

AVK>>>>>Да ну нафик. Долгое время это сколько? 1 минуту? 2?
AN>>>>Бывает и часы, если все брать с нуля.
AVK>>>А зачем все брать с нуля? И часы — это, видимо, опять жлобство работодателя.
AN>>А когда уже все перепробовал и не пашет Либо бывает не коммитится, либо не берется.
AN>>Там получается некоторое кол-во гигов.

ааа... так это совершенно разные контексты были. В этом я просто попробовал вспомнить хоть какой то пример.
И как раз просто по обезьянни сделали, как было с каталогами. Может еще были какие то варианты, но не закрепились.То бишь с админом это у меня ну никак не ассоциировалось.
Cообщение написано в &lt;&lt; RSDN@Home 1.2.0 alpha 5-AN-R6 rev. 8461&gt;&gt;
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.