Subversion is a popular version control software and replacement for CVS, the grand-daddy of all version control software which is still widely used in open source community. Subversion é uma versão popular software e controle de substituição CVS, o grand-daddy versão controle de todos os softwares que ainda é amplamente utilizado na comunidade de fonte aberta.

Recently I had the necessity to invoke Subversion commands like checkout from Ant, a popular java based build software which replaces make tool. Recentemente tive a necessidade de invocar Subversion comandos como saída a partir de Ant, construir um software baseado java popular que substitui a tornar ferramenta.

There are two ant tasks to accomplish this, the better one is SvnAnt from Subclipse project. Existem duas tarefas a cumprir esta formiga, o melhor é SvnAnt um projeto de Subclipse. However configuring it to work was non-trivial as proper usage documentation was missing. No entanto configurando-o para trabalhos não-triviais como era bom uso documentação estava faltando. So I decided simplify the process to make your life easier. Por isso decidi simplificar o processo para tornar sua vida mais fácil.

However the extensive commands it supports are well No entanto, a extensa ele suporta comandos estão bem documented documentados .
Note: If prompted for user name / password use guest / guest. Nota: Se perguntado sobre o nome do usuário / senha utilização hóspede / hóspede.

Why SvnAnt? SvnAnt Porquê?
Subversion is a full-fledged version control software obviously supporting commands like checkout, add or commit. Subversion é um verdadeiro controlo versão de software evidentemente apoiar comandos como checkout, adicionar ou cometer. The ant task from O’Reily didn’t even support checkout! A tarefa de formiga O'Reily não tinha sequer o apoio checkout! It supported a very limited set from the available commands. Ele apoiou um conjunto muito limitado disponível a partir de comandos.
So I went for Então eu fui para a svnant task which had much better support. tarefa que tinham muito melhor apoio. Also this way you don’t have to mess with Também desta forma você não tem que mexer com exec’ing the Subversion CLI exec'ing o Subversion CLI commands directly from your ant script. comandos diretamente do seu script ant. It is wrapped up for ease of use. É rematou para a facilidade de utilização. It can also use JNI interface for speed. Ele também pode usar a interface JNI velocidade.

To provide access to the Subversion API, svnant uses either the Para proporcionar o acesso à API Subversion, svnant usa tanto o javahl - Subversion Java bindings or Subversion’s command line programs (which must be installed and in your PATH). -- Bindings Java Subversion Subversion da linha de comando ou programas (que deve ser instalado e em seu PATH).

javahl uses JNI which must be setup appropriately. javahl usa JNI, que deve ser configurado adequadamente. I preferred using the Subversion’s command line programs as subversion was already installed in my system. Eu preferia usar o Subversion da linha de comando programas como subversão já estava instalada no meu sistema.

Steps: Passos:
1. I am assuming you already have Estou assumindo que você já tem ant formiga installed. instaladas. If not do it first. Se não fazê-lo primeiro. Ensure %ANT_HOME% ($ANT_HOME for *nix) is defined and %ANT_HOME%\bin is appended to your %PATH%. Assegurar% ANT_HOME% (US $ ANT_HOME para * nix) é definida e% ANT_HOME% \ bin é anexado ao seu% PATH%.

2. If you do not have subversion installed then first Se você não tiver instalado então primeiro subversão download it baixá-lo and install. e instalar.

2.1 Ensure that svn is in your path by invoking svn from a command windows (cmd for windows, bash etc. for *nix). 2,1 svn Assegurar que está em seu caminho, invocando a partir de um comando svn janelas (cmd para janelas, etc bash para * nix).

3. Download Baixar svnant and extract the files to any directory. e extrair os arquivos para qualquer diretório.

4. Go to your project directory. Ir para o diretório do seu projeto. If it doesn’t have a lib (or equivalent) directory to store required jar files then create one and copy all the files (*.jar ) from svnant’s lib directory: Se ele não tem uma lib (ou equivalente) diretório para armazenar arquivos jar necessários então criar uma cópia e todos os arquivos (*. jar) de svnant do diretório lib:
commons-lang-2.0.jar
jakarta-regexp-1.3.jar Jacarta-regexp-1.3.jar
svnClientAdapter.jar
svnant.jar
svnjavahl.jar

5. To use svn task you have to add a taskdef to your build file. Para usar svn tarefa que você tem que acrescentar um taskdef para construir o seu arquivo. Use either of the following: Use um dos seguintes:
Option 1: Opção 1:

This requires the lib directory to be included with either “ant -lib lib” or by adding an extra parameter: Isso requer o diretório lib para ser incluído em qualquer das "formigas-lib lib" ou, adicionando um parâmetro extra:

where project.classpath is previously defined as: project.classpath onde está previamente definido como:

Option 2 is simpler: A opção 2 é mais simples:

The project.classpath is previously defined as shown before. O project.classpath é previamente definida como mostrado anteriormente.

For example you can use this simple build.xml file to fetch latest code from WordPress repository: Por exemplo, você pode usar este simples arquivo build.xml para buscar mais recente do código da WordPress repositório:

Run this script by simply typing ant. Executar este script basta digitar a formiga.

BTW: I think Subversion as version control software and ant as build and deployment software are two very strong products which should be part of any enterprise open source software stack. BTW: Penso Subversion como versão de software e controle formiga como construir e implantação de software são muito fortes dois produtos que devem fazer parte de qualquer empresa de software de fonte aberta pilha.