Pre-Process Files for Commits and Pulls

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Pre-Process Files for Commits and Pulls

Brandon Teska
Hi everyone,

I have an unusual question. I'm curious if git can pre-process files
before pushing them to a remote repo and then reprocess them on pulls.
Basically, I'm trying to work collaboratively with a few colleagues on
a project using another software program. I've decoded the file we've
been working on, so that we have the "source" that would be well
managed by git. However, I need this to be accessible to laypeople so
I need my workflow to look like this:

1. Person A works on (binary) file locally
2. Person A commits and pushes to the repo
3. Before the push, a script deconstructs the binary file into several
text files
4. Those text files are pushed

Similarly, when Person B pulls from the repo, this is what I need to happen:

1. Person B pulls
2. Before sending the pull, git calls a script that repackages the
text files into a "binary" files that the software can use.
3. Person B can now update the file as he wishes

So, basically I am curious if git can store a different "form" of the
file(s) that what are actually worked on. Is this possible? (I'd like
to avoid running client side scripts if at all possible, but would be
willing if that's a possibility.)

Thanks!

Brandon
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: Pre-Process Files for Commits and Pulls

Junio C Hamano
Brandon Teska <[hidden email]> writes:

> 1. Person A works on (binary) file locally
> 2. Person A commits and pushes to the repo
> 3. Before the push, a script deconstructs the binary file into several
> text files
> 4. Those text files are pushed

A smudge/clean filter pair is how this is done, but you need to drop
"several text files" from the requirement.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html