Hi,
I'm quite new to SVN having previously used CVS many years ago.
I am working on a solo (thankfully) embedded C project which I am using to help
me learn the ropes. I do not administer the server I am using, this is done by
my workplace, but I do have my own repository space for the project. Several
weeks ago, I branched my project so I could port it to a new hardware platform
without messing up the main trunk. I now want to merge the branch back onto
the trunk. It seems that I have made an error in the directory structure so
now I cannot merge it back. I will try to explain in detail what I did. My
repository looks like this,
ProjectName
ProjectName
> Module1
ProjectName
> Module2
ProjectName
> branches
ProjectName
> tags
The ModuleX directories contain a large hierarchy of files (source, IDE project
and other binary files) and folders. I have eliminated these for brevity.
I realise now that the repository /should/ really look like this but please
bear with me:
ProjectName
ProjectName
> trunk
ProjectName > trunk > Module1
ProjectName > trunk > Module2
ProjectName > branches
ProjectName
> tags
I took a branch of my project and used switch on my working copy so it still
looked like this:
ProjectName
ProjectName
> Module1
ProjectName
> Module2
ProjectName
> branches
ProjectName
> tags
I have been working on this "branch" for several weeks and committing as I go.
But rather than committing onto a branch I have really been committing into a
subdirectory of the trunk of the main project which contains a
duplicate of the project as due to my mistake my repository actually looks like
this:
ProjectName
ProjectName
> Module1
ProjectName
> Module2
ProjectName
> branches
ProjectName
> branches > NewPlatform > Module1
ProjectName
> branches > NewPlatform > Module2
ProjectName
> tags
When I try to merge the "branch" back onto the trunk I end up with two
disparate versions of my modules, one in the ProjectName > ModuleX directory
containing whatever it was before the branch, and a second in ProjectName
> branches > NewPlatform > ModuleX, containing what I have been working on over
> the last few weeks. What I really wanted were singular ProjectName > ModuleX
> directories which have the merged changes from what I was working on before
> and what I have been on most recently. It is important to note that the
> NewPlatform "branch" contains a different set of IDE project files etc. I
> would like to have the merged trunk to contain the superset of files required
> for each hardware platform.
How can I fix the repository structure so my branch is actually a branch and so
I can merge in what I want to?
Thanks and best regards.