Where to store snapshots in svn

We need to archive the project output (in our case, one executable file of about 1 MB in size).

NOTE. . The practical result of this is that for any release of the released assembly I need to archive an unchangeable copy of it for an indefinite period. (for example, if we build from r993, r1014, r1205 and r1293 our source tree, I need to save one output for each of them.)

Naturally, we use Subversion for this, because we have a server running. What is unnatural, where you can put the output of the assembly.

  • Checking the area of ​​the source tree -> not very good, because it complicates updates / merges, etc.

  • Create a special area in the repository associated with the source tree , for example:

    project-foo/
      branches/
      tags/
      trunk/
      build/        <-- released executables go here
                    (along with metadata containing source references)
    

    We really do not need branches or tags for the executable; I just need a place where an immutable snapshot that I can reference (in the case of SVN, along the path and rev #)

  • Create a special area in the repository loosely connected to the source tree , for example:

    project-foo/
      branches/
      tags/
      trunk/
    project-foo-build/          <-- released executables go into a subdir:
      branches/
      tags/
      trunk/
    
  • Use a different program than SVN. ??? Whatever it is, he must support ideas

    • immutable data
    • data related metadata
    • several versions of the same type (for example, the assembly executable for the foo project)

Any suggestions?

I am inclined to the idea of ​​number 2, but I wanted to step back and better understand the various advantages / disadvantages.


* , , . , . , , , . , , . .

+3
4

Subversion, . (), (, SHA1) , - .

, , Subversion, , ( ), , .

+2

, # 4.

SW, , ( , ..) SW .

. , , SCM, Redmine - . Redmine SVN ( Hg, Git ..)), , .. , SCM.

, wikipedia SCM, .

+1

, svn add , :

build.bat
svn add bin\*
svn cp . http://example.com/svn/myproject/tags/x.y -m "tagging release x.y"
svn revert -R .

, , trunk.

svn revert . , svn status , svn add. .

+1
source

As you say, it’s unnatural to use SVN to build products, because it’s good practice to only have the source code in your repository. You'd better name the assembly output without ambiguity (project-branch-revision), called your build process, and archived the assembly output in the classic way (file server).

0
source

All Articles