Re: Merging branches with smudge filter
From: Michael J Gruber <hidden>
Date: 2016-06-15 23:08:10
[Please bottom-reply on this list] Leonardo venit, vidit, dixit 08.02.2016 18:52:
Hi. I understand what you mean, but if that's the case, I don't get how every file was merged successfully despite the encryption, except two of them. I thought the smudge filter was supposed to be applied to every blob before any git operation, thus exposing the clean source code. Well, in the end I've merged these two files manually. I think I might have done something wrong while branching. I'm still learning. Next time I'll be more attentive.
Simple rule with filters: "cleaned" is what is stored in the repo (as blobs) "smudged" is what you see in your files in the working tree Now, if Git is asked to merge two revisions and some blobs were not changed at all, or only by one side of the merge, these parts of the merge can be resolved trivially. The others can't. You may want to try merge tools, or even a custom merge driver (see git-merge man page). Michael
2016-02-08 15:32 GMT-02:00 Junio C Hamano [off-list ref]:quoted
Leonardo [off-list ref] writes:quoted
Hi, everybody. I'm new to git and I'd like to keep track of some codes we have here in our company. They have some sensitive information I would like to keep private. After some googling, I found some solutions that encrypt/decrypt the files using filters as they're committed/checked out. I've been using this approach and it suits my needs. Now I need to merge two branches, but the process is failing for two files in particular. First of all, here's my config file: [filter "openssl"] clean = openssl enc -aes-256-cbc -a -nosalt -pass pass:password smudge = openssl enc -d -aes-256-cbc -a -nosalt -pass pass:password requiredGit works on the "clean" representation of the data, i.e. the representation of the blob object stored in the object database and in the index, when manipulating the contents, e.g. diffing two variants, patching (think "add -p"), merging, etc. As you are making the "clean" version an encrypted opaque sequence of bytes, it is expected that you wouldn't be able to run 3-way merges.