diff options
| author | Florian Jung <flo@windfisch.org> | 2013-09-10 17:57:35 +0200 | 
|---|---|---|
| committer | Florian Jung <flo@windfisch.org> | 2013-09-10 17:57:35 +0200 | 
| commit | 95632f9f481e7448eb4dc45f697782ab4d233dba (patch) | |
| tree | 6ed5680dbfe7db8dc47a01d08d6e9866c583c245 /muse2/README.svn-branch | |
| parent | b05fdd7bd212cf664eb64ec292936f1843a400f5 (diff) | |
Moved READMEs to root directory so GitHub finds them
Diffstat (limited to 'muse2/README.svn-branch')
| -rw-r--r-- | muse2/README.svn-branch | 125 | 
1 files changed, 0 insertions, 125 deletions
| diff --git a/muse2/README.svn-branch b/muse2/README.svn-branch deleted file mode 100644 index 94e44ed8..00000000 --- a/muse2/README.svn-branch +++ /dev/null @@ -1,125 +0,0 @@ -Branches are handy for developing larger features (especially if you -temporarily break muse and then fix it again). You might want to ask -why you shouldn't simply develop in your local working copy, and then -commit a huge chunk. Well, this has multiple reasons: -  o with branches, you'll have a history, because there are many small -    commits. this makes bisecting for finding a bug possible. -  o when you develop your feature publicly, others can check out half-done -    versions, and already test the one half. they also could fix bugs. -  o another advantage of keeping it public is: others can see whether you -    may exclude some use case and inform you about that in time. otherwise -    you'd spend lots of work in a design which was obsolete from the -    beginning. -  o and it shows that there's something going on :) - -also, branching makes "feature freezes" easier, for release planning. - -General note: ^/trunk means [url of the repo]/trunk. when you're inside -a working copy, svn understands the ^/trunk notation. -i assume you're inside some working copy - -whenever merging, make sure you're in the correct directory! - -CREATING A BRANCH -  the following command creates a branch called yourbranch in the branches -  directory, which is built upon the current (NOT the checked out!) trunk -  revision: - -  svn copy ^/trunk ^/branches/yourbranch - -  svn copy does a "light copy", that is, as long as you don't change files, -  they don't occupy any disk space. - -USING THE BRANCH -  you might want to checkout every branch relevant to you into another local -  copy. believe me, it makes life easier. alternatively, svn switch is your -  friend. -  just develop inside the working copy, then commit. - -MERGING WITH THE PARENT BRANCH (in my example: the trunk) -  from time to time, you want to update your branch to represent the -  current trunk plus your changes (and not an ancient trunk plus your -  changes). to be safe, only merge with the parent branch, and only -  merge in one direction (usually from trunk into your branch), unless -  you know what you're doing. if you're reading and not skimming this, -  you're probably NOT knowing. svn help and google are your friends. - -  be in your branch'es working directory root (the dir which is containing -  all the files/dirs also trunk (the parent) is containing as well. - -  svn merge ^/trunk --accept postpone - -  does the job for you. there might be conflicts, when both in your branch -  and in trunk some file has been changes at a similar location. svn by -  default asks you what to do then, which is annoying. --accept postpone -  turns this off, and gives you a summary at the end of the merge. -   -  If There Were Conflicts: -    if any file in "svn status"'s output has a C in front of it, there are -    conflicts. open the file in your editor, and look for markers like -    "<<<<<", "=====" and ">>>>>". these show what code is in the trunk -    (between <<<< and ====), and what code is in your branch (between -    ==== and >>>>) (or vice versa. svn tells you). -    you have to make it work again and save the file. -     -    with "svn resolved FILENAME" or "svn resolved -R some/directory" you -    mark the conflicts for FILENAME or all files below some/directory as -    solved. -   -  Another word about conflicts: there may be conflicts, even if svn doesn't -  note them. ALWAYS recompile the merged code and test it. -   -  if done, you can commit the merge normally using "svn commit" -   -PUTTING YOUR WORK BACK INTO THE PARENT BRANCH (in my example: trunk) -  do a final merge from your parent branch into your branch. compile and -  test. -  then there are several ways to proceed: -    o use svn merge --reintegrate, which doesn't work with the old repo -      version muse is using :( -    o go into the trunk (or the parent branch'es directory), and issue -         svn merge ^/branches/yourbranch --accept theirs-full -      the problem with the merge is, that every previous merge from trunk -      into your branch will be applied a second time, which doesn't work. -      --accept theirs-full will basically use the files in your branch. -      you might want to verify with diff: -         diff -R /path/to/local/trunk /path/to/local/yourbranch -      there should be no differences. -       -      commit that to trunk: svn commit - -      then, "fake-merge" trunk into your branch again. otherwise, with the -      next merge from trunk into your branch, we would have the duplicate -      changes problem again. if you're _SURE_ that you aren't using the -      branch any more, you can leave this step out. - -      svn merge ^/trunk ^/branches/yourbranch --record-only -      svn commit -      - -  this solution is a bit hackish :( but it works - - -NOTES FOR RELEASE BRANCHES -  after creating the release branch, ALL commits which are fixing bugs -  must go into the release branch. ALL commits which are adding features -  must go into trunk or other branches. -  the team should focus on fixing bugs in the release branch. -  to get the fixes into the trunk, from time to time run: - -  svn merge ^/branches/releasebranch ^/trunk -  svn commit (in trunk's local copy) -   -  when releasing the release branch, merge it into the trunk a last time, -  and then never touch the release branch again. -  for the next release, create a new one. - -TAGGING -  when there's any reason for tagging a revision, simply do -  svn copy ^/whatever ^/tags/yourtagname -  read the svn manual for details - -GETTING HELP: -  svn help <command> (usage notes, short explanations) -  google (everything) -  the svn book (->google) (long explanations) | 
