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.  
                                          

Reply via email to