How to combine SVN commits?

How do I take a range of commits in my SVN repository and combine them?

For example, revisions 4-10 exist in the repository and I want to combine them into a new revision 4 that contains all the changes in the previous 4-10.

  • Can git and subversion play nice together?
  • Always exclude folders from committing in SVN for Netbeans
  • does Java have API wrappers around subversion and Git?
  • Programmatically tell difference between git-svn and git repos?
  • How to export changed files between two SVN revisions
  • Git or SVN for Rails app?
  • I don’t want to break any existing tags, which were created via svn copy.

    This is because the repository was previously in ClearCase, and Polarion’s migration tool left a huge number of single file commits that need to be cleaned up.

  • Reintegrate can only be used if revisions X through Y were previously merged from <URL> to reintegrate the source, but this is not the case
  • TortoiseSVN not saving authentication details
  • Migrating Visual SVN Server from one Windows install to another
  • How is SVN v 1.8 branching / merging compared to Git?
  • Using GIT or SVN in XCode 3/4 without server
  • SVN: set all files marked with “!” to “D”?
  • 4 Solutions collect form web for “How to combine SVN commits?”

    You can create a branch at revision 3 and merge revisions 4-10 into the branch

    Reading between the lines, take a look at svk, which should let you run a local repository then commit a number of changes at once to the main repository.

    You can’t do that without creating a new repository, so better just get over it.

    If you really really need to do this you could probably do it with “svnadmin dump” and “svnadmin load”.

    Edit: If you just want to push the commits out of the history of the trunk but are fine with them remaining elsewhere in the repository then something similar to Manu’s proposal is a workable solution: Rename trunk to old_trunk, copy the revision before the range you want to merge to trunk, then merge the revisions in the range and commit.

    If you really need to do this, then check out each revision (not single-file commit) from ClearCase and then manually copy the files over a new SVN checkout using a tool like WinMerge to make sure all file adds and deletions are copied over as well as changes. Then do an SVN commit.

    If this is too much manual work due to the number of ClearCase commits (although you could probably automate this without too much difficulty), then consider just committing major revisions to SVN (e.g., point releases) manually.

    If that is not feasible, then consider not bringing over any revision history from ClearCase – just start fresh with SVN. Perhaps commit a text file with the old change log from ClearCase for historical purposes, so that if someone needs to go back and get some old code, they can figure out what revision to look for.

    Git Baby is a git and github fan, let's start git clone.