Skip to contentSkip to conversation

How can I track a template?

DISCUSSION Mike Sharov 2 participants 2 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

I am trying to create a standard module to be included into many projects. Specifically, the build system skeleton, but I have other uses for the same mechanism. The idea is to have a repository with the skeleton itself, and have other projects include it somehow and keep up-to-date by pulling from the template repository.

The straightforward approach of using 'git pull' does not work very well. At each merge, all the things changed show up. For example, I would change the project name in the configure template. This change creates a merge conflict on every pull even if that particular line did not change in the template. Somehow it just doesn't seem to establish a base for the merges. Another problem is that the tags get pulled and become tags on the project, which is undesirable.

What sort of a solution would you recommend for this, if any?

Signature · 1 line
Mike Sharov
#1 lore raw
Quoted 14 lines · Mike Sharov

I am trying to create a standard module to be included into many projects. Specifically, the build system skeleton, but I have other uses for the same mechanism. The idea is to have a repository with the skeleton itself, and have other projects include it somehow and keep up-to-date by pulling from the template repository.

The straightforward approach of using 'git pull' does not work very well. At each merge, all the things changed show up. For example, I would change the project name in the configure template. This change creates a merge conflict on every pull even if that particular line did not change in the template. Somehow it just doesn't seem to establish a base for the merges. Another problem is that the tags get pulled and become tags on the project, which is undesirable.

Quoted 1 line

What sort of a solution would you recommend for this, if any?

Enable rerere, the merge resolution recorder/replayer. Pull from skeleton repo with --no-tags, and remove the tag-fetching refspec from your .git/config (note that everyone has to do it, but if only you integrate the updated skeleton that won't be a problem).

Or unconditionally include a project.mak (or some such) from the build skeleton which sets all the project-specific details.

Signature · 3 lines
Andreas Ericsson                   [email protected]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231