|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
Одинаковые файлы в разных проектах04.07.2016, 02:08. Показов 2784. Ответов 4
Метки нет (Все метки)
Гуру, подскажите, может уже появилось решение? (лет 5-7 "мониторю")
Есть десяток проектов, в которых задействованы одинаковые файлы. Нечто вроде "универсальных функций". Таких файлов больше 30 и в разных проектах разные "наборы". Исправив файл в одном проекте надо обновить в других проектах. Возможно даже "слияние" изменений использовать (если 2 разных разработчика один файл в двух проектах изменили) Например: в андроиде есть "коллекция" uni_vibro.java - отвечает за разные виды вибраций. Нужно в 3-4х проектах... есть коллекция uni_str.java - набор хитрых строковых функций (например "число словами" или "убрать сдвоенные пробелы") - нужно в 5-8 проектах... есть uni_gps - работа с GPS - нужно в 2х проектах... Файлы не обязательные для ВСЕХ. Коллекцию в 30-40 "наработанных годами функций" отдавать заказчику ЦЕЛИКОМ не хочу, но и вручную отслеживать подобное тяжело! Все файлы из коллекций свалены в папку проекта /uni/*. В разных проектах разные "наборы" из универсальных наборов/коллекций/утилит... Написал свое решение на 1С (отслеживаю новые по дате-времени и сравниваю строки через TotalCommander с параметрами), но все еще мечтаю что GIT до подобного дорастет... Раз в пол года-год спрашиваю! Может уже доросло???
0
|
|
| 04.07.2016, 02:08 | |
|
Ответы с готовыми решениями:
4
Совместная разработка одного файла в нескольких разных проектах Извлечь все измененные файлы из разных директорий Надо создавать одинаковые файлы в двух совершенно разных дирректориях- что лучше? |
|
3687 / 964 / 114
Регистрация: 10.01.2010
Сообщений: 2,550
|
|
| 04.07.2016, 14:06 | |
|
Maven? (http://mvnrepository.com/)
Нужны пакетные менеджеры Свой код выносится в отдельный пакет и во всех нужных проектах подтягивается как пакет с помощью менеджера Да, придётся на каждый обособленный участок создавать git-репозиторий
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 04.07.2016, 15:14 [ТС] | ||
|
Как это у меня работает сейчас: (написано на 1С7.7, "под себя" а не "универсально", часто встречаю мелкие недоработки, которые лень исправлять) 1) есть справочник пректов - название, путь, коментарий, тип проекта(делфи, js, java, c++, php, py), активно(отслеживать/отложено/заброшено), дата последней работы("уже 2 года не трогал проект - наверно он сильно устарел - может не стоит сразу обновлять") 2) есть справочник "юнитов" - тех которые надо отслеживать в проектах независимо. Назначен ГЛАВНЫЙ проект юнита (то где создавался, с кем идет сравнение - скорее не GIT, а SVN технология) 3) есть справочник "связей" ЮнитыПроекта - автоматическим можно заполнить по списку известных юнитов по стандартным папкам 4) есть обработка сравнения - пробегает по активным проектам и сравнивает. Находит отличия в дате-времени (пока ТОЛЬКО в этом), и показывает "старше главного или младше". Есть возможность сравнить с "главным" построчно" (тоталкоммандер-сравнивалка), подправить ручками "исключения" и заменить устаревшую. Замена "надежная" - хранит 3 прошлых копии "filename.java~1" Вполне работает... глюки мелкие(могу исправить, но лень), но... не профессионально как-то! Не позволяет разрабатывать совместно (кроме общего сервера). Нет контроля версий. Не позволяет избавится от "центрального проекта" для каждого файла...
0
|
||
|
923 / 639 / 198
Регистрация: 08.09.2013
Сообщений: 1,693
|
|||
| 09.07.2016, 10:32 | |||
|
Во-первых, у разрабов Гита (они же разрабы ядра Линукса) подобных проблем не возникает. Во-вторых, Гит все-же идеологически Юниксовая программа, где подразумевается, что система контроли версий не должна выполнять задачи менеджера пакетов. В традиционных рамках ваша задача может быть решена двумя способами. Первый уже подсказали - отдельные репозитории и пакетный менеджер. Это удобно, если общие файлы могут использоваться другими командами разработчиков в других проектах. Второй - из ваших проектов делаете один большой. Фраза Извиняюсь, если я вас неправильно понял.
1
|
|||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|||
| 09.07.2016, 15:17 [ТС] | |||
|
Например в андроиде есть класс выводящий маленькие всплывающие сообщения. Они "скучные" и не удобные... Я сделал свои - могу задавать цвета фона и шрифта, размеры, позицию - и все одной удобной функцией, а не кодом в 5-10 строк (создать класс, задать десяток-два параметров, отобразить класс)... Достаточно положить uni_Toast.java в папку проекта и можно использовать. Полезно во МНОГИХ проектах. РАЗНЫХ проектах. И иногда я добавляю туда новые параметры или обрабатываю новые (свеже-встреченные) ошибки и исключения... Заказчики хотят получать исходники - поэтому всю коллекцию подобных "наработок" одним пакетом передавать не хочу, да и код "раздувается" (зачем простому калькулятору удобная обработка состояния батарейки или GPS - они тоже поставляются "одним файлом" и выборочно участвуют в других проектах) Создавать целый "пакет" из маленького "набора полезных функций" в 2-3 страницы - не удобно. Да и контролировать между несколькими проектами тяжело. Это проблема не Гита/Линукса, а (подозреваю) мелких фрилансеров, которые ведут/обслуживают десяток маленьких, не связанных заказов/проектов, вынуждены открывать заказчикам исходники и/или не хотят раздувать проекты лишними файлами (моя полная коллекция только под андроид уже в несколько мегабайт кода, а средний проект в <200кб)! может через год-два появится что-нибудь подобное "из коробки"... Некое подобие "частных репозиториев", "локальных гитхабов"... Я уже лет 7-8 вынашиваю эту идею! Еще на Делфи столкнулся (наборы строковых обработчиков и утилит отладки), а потом еще языков 5-6 подключил... Заводил "реестр проектов" в екселе, выписывал у кого есть общие файлы в текстовик... потом уже просто реестр завести в 1С (там система справочников удобная и пишется быстро), а уже потом и реальную сверку файлов туда начал добавлять...
0
|
|||
| 09.07.2016, 15:17 | |
|
Помогаю со студенческими работами здесь
5
Перегрузка метода в разных проектах Messagebox.Show не работает в разных проектах Разное поведение span в разных проектах Почему в разных проектах разная локализация .NET Framework подсказок к методам и т.д.?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|