SVNNotify Onde está? como eu acho isso?

3

Estou no Ubuntu.

ok primeiro de tudo eu estou executando um script de pós-commit. Eu preciso do caminho para svnnotify para executá-lo. O caminho que o turotial estou lendo o tem como /usr/local/bin/svnnotify , mas nada está nesse local no meu computador. Eu tentei de qualquer maneira e eu recebo algo como:

Warning post-commit hook failed: not found

então eu acho que eu preciso substituir /usr/local/bin/svnnotify pelo caminho correto para o svnnotify. Bem, eu faço uma pesquisa ( Places>Search for Files ) para svnnotify e nada aparece.

Eu sei que o svnnotify está instalado porque eu abro uma linha de comando e executo svnnotify me diz que estou perdendo o argumento de caminho requerido.

Então, como ele pode ser instalado se não estiver no sistema de arquivos em algum lugar?

Eu realmente não sei como o Linux funciona, é muito novo para mim, então estou confuso.

Há algo que eu esteja sentindo falta?

atualizar

Atualizei o arquivo para que pareça:

#!/bin/bash

REPOS="$1"
REV="$2"

/usr/bin/svnnotify --repos-path "$REPOS" --revision "$REV" --subject-cx --with-diff --handler HTML::ColorDiff --to [email protected] --from [email protected]

Tornei isso executável.

Eu corro assim:

myuser@linux-server:/usr/local/svn/svn_repo/hooks$ post-commit /usr/local/svn/svn_repo 9

Eu recebo isso como saída:

post-commit: command not found

    
por JD Isaacks 17.06.2010 / 20:22

3 respostas

1

/usr/local é uma localização tradicional do Linux / Unix para "coisas que você instalou por conta própria". Se você compilar o material da fonte e instalá-lo, /usr/local é normalmente usado como o principal diretório de instalação - executáveis vão em /usr/local/bin , bibliotecas em /usr/local/lib , etc.

Se você estiver instalando coisas dos repositórios de pacotes da sua distribuição, esses arquivos serão colocados em outro lugar. /usr é o diretório típico de instalação do sistema, portanto, se o gerenciador de pacotes tiver ou puder obter o pacote correto, ele será instalado em /usr/bin , /usr/lib , etc.

Como você não dá um link para o tutorial, eu não sei o que você tem tentou, ou como isso pode entrar em conflito com as instruções do tutorial. Mas você está procurando pelo programa svnnotify . Se você tem certeza de que já está instalado, tente o seguinte:

  1. Execute qual para ver se o seu sistema já conhece o comando e onde o encontra:

    $ which svnnotify
    /usr/bin/svnnotify
    

    Se isso não for encontrado, não há nenhum comando chamado svnnotify em seu PATH, mas talvez haja um no sistema em algum lugar que não esteja no PATH.

  2. Verifique com locate svnnotify .

    $ locate svnnotify
    /usr/example/bin/svnnotify
    /usr/bin/svnnotify
    /usr/share/svnnotify/foo
    ...
    

    Se você instalou o svnnotify do zero, seu gerenciador de pacotes pode não saber onde ele está; localizar deve ajudar. Você terá que tomar nota das localizações de arquivos fora do padrão e ajustar as etapas do tutorial adequadamente.

    Se você instalou recentemente, execute sudo updatedb para que localize as adições recentes ao sistema de arquivos.

Se essas etapas não encontrarem o arquivo, verifique se o pacote está instalado ou instale-o no gerenciador de pacotes favorito ( Synaptic, apt-get, aptitude , etc.). No Ubuntu 10.04, o svnnotify é instalado em / usr / bin / svnnotify pelo pacote libsvn-notify-perl . Se você estiver usando o svnnotify do Ubuntu, precisará modificar as etapas do tutorial apropriadamente.

O tutorial mostra como criar um post-commit script. Você precisa modificar o script para apontar para o svnnotify correto. Se o seu sistema tiver svnnotify em / usr / bin / svnnotify em vez de / usr / local / bin / svnnotify , altere o script da seguinte forma:

#!/bin/sh

REPOS="$1"
REV="$2"

/usr/bin/svnnotify                          \
    --repos-path    "$REPOS"                \
    --revision      "$REV"                  \
    --subject-cx                            \
    --with-diff                             \
    --handler       HTML::ColorDiff         \
    --to            <your e-mail address>   \
    --from          <from e-mail address>
    
por 17.06.2010 / 21:57
2

No Ubuntu, svnnotify vem no pacote libsvn-notify-perl .

Em um terminal, digite sudo apt-get install libsvn-notify-perl , que instalará svnnotify e tente seu script novamente.

    
por 31.05.2013 / 04:34
1

I run it like so:

myuser@linux-server:/usr/local/svn/svn_repo/hooks$ post-commit /usr/local/svn/svn_repo 9

I get this as output:

post-commit: command not found

No Linux e em outros sistemas Unix, o shell não procura programas no diretório de trabalho atual por padrão (por motivos de segurança), portanto, você deve executar esse script da seguinte maneira:

myuser@linux-server:/usr/local/svn/svn_repo/hooks$ ./post-commit /usr/local/svn/svn_repo 9
    
por 11.07.2010 / 15:52