С Новым годом! Форум программистов, компьютерный форум, киберфорум
Git
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2016, 02:08
Ответы с готовыми решениями:

Совместная разработка одного файла в нескольких разных проектах
Гуру, все еще надеюсь что есть некое решение... Можно ли натравить репозиторий git или svn на один лишь файл не трогая остальные, а...

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

Надо создавать одинаковые файлы в двух совершенно разных дирректориях- что лучше?
в силу поставленной задачи мне надо создавать одинаковые файлы в двух совершенно разных дирректориях мой философский вопрос таков: что...

4
Автор FAQ
 Аватар для insideone
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  [ТС]
Цитата Сообщение от insideone Посмотреть сообщение
Свой код выносится в отдельный пакет и во всех нужных проектах подтягивается как пакет с помощью менеджера
Подобное уже предлагали, но это СЛОЖНО! НЕ УДОБНО! Нет никакого менеджера, все делается вручную, нет "частного репозитория" встроенных "пакетов".

Как это у меня работает сейчас: (написано на 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
Цитата Сообщение от Tester64 Посмотреть сообщение
но все еще мечтаю что GIT до подобного дорастет
Сомневаюсь.
Во-первых, у разрабов Гита (они же разрабы ядра Линукса) подобных проблем не возникает.
Во-вторых, Гит все-же идеологически Юниксовая программа, где подразумевается, что система контроли версий не должна выполнять задачи менеджера пакетов.
В традиционных рамках ваша задача может быть решена двумя способами.
Первый уже подсказали - отдельные репозитории и пакетный менеджер. Это удобно, если общие файлы могут использоваться другими командами разработчиков в других проектах.
Второй - из ваших проектов делаете один большой. Фраза
Цитата Сообщение от Tester64 Посмотреть сообщение
Исправив файл в одном проекте надо обновить в других проектах.
уже подразумевает, что это - один большой проект. Из одного проекта можете системой сборки делать свои 30+ бинарных пакетов, распространяемых отдельно. Например то же ядро Линукс - один проект, gcc - один проект, содержащий кучу компиляторов, компоновщиков, утилит и т.д. для разных платформ.
Извиняюсь, если я вас неправильно понял.
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
09.07.2016, 15:17  [ТС]
Цитата Сообщение от gng Посмотреть сообщение
Сомневаюсь.
жаль! может позднее появится...

Цитата Сообщение от gng Посмотреть сообщение
уже подразумевает, что это - один большой проект.
Это как раз разные проекты! Абсолютно разные!

Например в андроиде есть класс выводящий маленькие всплывающие сообщения. Они "скучные" и не удобные... Я сделал свои - могу задавать цвета фона и шрифта, размеры, позицию - и все одной удобной функцией, а не кодом в 5-10 строк (создать класс, задать десяток-два параметров, отобразить класс)... Достаточно положить uni_Toast.java в папку проекта и можно использовать. Полезно во МНОГИХ проектах. РАЗНЫХ проектах. И иногда я добавляю туда новые параметры или обрабатываю новые (свеже-встреченные) ошибки и исключения... Заказчики хотят получать исходники - поэтому всю коллекцию подобных "наработок" одним пакетом передавать не хочу, да и код "раздувается" (зачем простому калькулятору удобная обработка состояния батарейки или GPS - они тоже поставляются "одним файлом" и выборочно участвуют в других проектах)

Создавать целый "пакет" из маленького "набора полезных функций" в 2-3 страницы - не удобно. Да и контролировать между несколькими проектами тяжело.

Это проблема не Гита/Линукса, а (подозреваю) мелких фрилансеров, которые ведут/обслуживают десяток маленьких, не связанных заказов/проектов, вынуждены открывать заказчикам исходники и/или не хотят раздувать проекты лишними файлами (моя полная коллекция только под андроид уже в несколько мегабайт кода, а средний проект в <200кб)!

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

Я уже лет 7-8 вынашиваю эту идею! Еще на Делфи столкнулся (наборы строковых обработчиков и утилит отладки), а потом еще языков 5-6 подключил... Заводил "реестр проектов" в екселе, выписывал у кого есть общие файлы в текстовик... потом уже просто реестр завести в 1С (там система справочников удобная и пишется быстро), а уже потом и реальную сверку файлов туда начал добавлять...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.07.2016, 15:17
Помогаю со студенческими работами здесь

Перегрузка метода в разных проектах
Здравствуйте! Возник вопрос. У меня есть 2 проекта в одном солюшене.Надо чтобы 2 проекте запускалось все что и в 1 но был переписан метод,...

Messagebox.Show не работает в разных проектах
Коллеги, добрый день. Я скачал с гита один проект и начал в нем работать. Все шло нормально до тех пор, пока я не настроил гит под...

Разное поведение span в разных проектах
Вобщем есть сайт http://graviongroup.ru/ у него есть правое меню с вкладками ПАРТНЕРАМ НОВОСТИ и меню &quot;бургер&quot; так вот, посмотрел...

Почему в разных проектах разная локализация .NET Framework подсказок к методам и т.д.?
Я помню, что как-то можно менять, но как?

Большие pch-, sdf-, pdb-, ipch- файлы в проектах Visual Studio для C++
Интересует меня, для чего предназначены файлы в проектах C++ с следующими расширениями: pch, sdf, pdb и ipch. Они очень много места...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Первый деплой
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru