Запретить коммит файла, не удаляя его с репозитория (git)?

Здравствуйте! Мы разрабатываем приложение на Java+Hibernate и для доступа к БД у каждого разработчика свой логин\пароль которые записаны в файле persistence.xml :
показать persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
             xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost/hibernate_test" />
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.username" value="root" />
            <property name="hibernate.connection.password" value="" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
        </properties>
    </persistence-unit>
</persistence>



Он должен быть в репозитории, но нужно сделать так, чтобы его нельзя было изменять. IDE - Idea
  • Вопрос задан
  • 3675 просмотров
Решения вопроса 3
onqu
@onqu
weasy
Можно использовать стратегию слияния, указав её в файле .gitattributes:
persistence.xml merge=ours
Ответ написан
Комментировать
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Не совсем верный подход к решению. У разработчиков будет анальная боль постоянно из-за таких хитрожопных дел. Почему-бы вам не сделать наложение конфигов. Типа сначала грузится дефолтный, например persistence.xml, а потом, если имеется на диске файл с таким именем, то поверх стандартного подгружается и он, например, persistence.user.xml
Ответ написан
Комментировать
Вы не правильно подходите к решению проблемы. Обычно делают так:
1. Имеют глобальный файл настроек, в котором прописаны основные настройки. Этот файл попадает в репозиторий.
2. Имеют локальный файл настроек, который содержит пароли/логины и некоторые специфичные локальные настройки. Этот файл совмещается с глобальным. Он не попадает в репозиторий.

В PHP-framework'ах к примеру, это два файла с массивами настроек. При запуске приложения массивы соединяются и приложению кормится смешанный массив настроек.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы