A little background, because this might be kind of confusing: the project I'm working on is one where most of the code is the same, but there are some files that change based on the platform we're deploying to. For this, the root folder has all of the "core" files that don't change, and then there is a directory for each platform with the files that change. So there's a baz/foo.c
and a bar/foo.c
, because foo.c
changes depending on whether it's deployed to baz
or bar
. Makefiles and such make all this magic work.
The quesiton is, I'm working on a new platform (we'll say qux
) that is based on bar
, so I've been working in a branch, and making modifications in the bar
directory. Now I want to rename that directory to qux
, but preserve the original bar
in the trunk when it comes time to merge, because that platform still exists. So my ultimate goal is to, in the trunk after merge, have baz
and bar
as they were before my meddling, and a new folder qux
with my changes (which are currently in the branch under the folder bar
, and are based on the original bar
).
Is there an easy way to do this? If I rename bar
to qux
in my branch, it seems like it'll try to delete bar
when I merge it back into trunk, which isn't what I want to happen. Do I need to do something like create a new folder qux
in my branch, copy files into it from bar
, and then revert bar
back to its original state? Or is there a better way to do this?
Edit: To be clear, there are changes already in the bar
folder that need to be reverted if I copy the files into a new folder.