Aktualizacja repozytorium SVN, Amazon Linux - Apache2, SVN, svn-post-commit hooks

Problemy dotyczące innych systemów operacyjnych
Radek2212
Posty: 14
Rejestracja: 17 stycznia 2012, 22:36

Aktualizacja repozytorium SVN, Amazon Linux - Apache2, SVN, svn-post-commit hooks

Post autor: Radek2212 »

Witajcie, potrzebuję trochę pomocy.

Fakty:
  1. Instancja, na której pracuję to Amazon Linux. W systemie istnieje użytkownik root ale loguje się na niego poprzez certyfikaty/klucze = nikt nie zna hasła roota ale dzięki sudo mc, ctrl+o udaje mi się uzyskać konto roota dla konsoli
  2. Jest tam zainstalowany serwer Subversion Server (nie ja go instalowałem ale mogę sprawdzić, pozmieniać konfigurację gdyby coś było potrzebne).
  3. Apache2 zainstalowany, działa bez problemów. W katalogu /var/www/html są odpowiednie katalogi typu: projekt1, projekt2 itp. - te katalogi stanowią lokalne kopie projektów obecnych w SVN, czyli w katalogu projekt1 mamy podkatalog trunk i pobieramy zmiany jak ktoś coś doda (zmieni).
  4. Do tych lokalnych repozytoriów kilku programistów ma dostęp i tak musi zostać, bo pliki widoczne na stronie www muszą być w lokalizacji, do której ma dostęp wielu użytkowników (odpadają lokalne repozytoria w katalogach domowych).
  5. Próbuję wykorzystać funkcjonalność ,,svn-post-commit'' dla aktualizacji svn. Działa to tak, że po każdej zmianie jest uruchamiany wybrany skrypt, który może robić dowolne rzeczy. A u mnie wywoływałby polecenie:

    Kod: Zaznacz cały

    svn update
    Jest to konieczne bo obecnie, jak webmaster coś zmieni to ktoś musi się zalogować na serwer,

    Kod: Zaznacz cały

    sudo mc
     ctrl+o
    a potem:

    Kod: Zaznacz cały

    svn update
    Nie muszę mówić, że to uniemożliwia normalną pracę.
Znalazłem coś takiego:

http://dtbaker.com.au/random-bits/svn-p ... -code.html

ale mam problem:

Kod: Zaznacz cały

#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
execl("/usr/bin/svn", "svn", "update", "--username", "YOURSVNUSER", "--password", "YOURSVNPASSWD", "/var/www/dev/",  (const char *) NULL);

  return(EXIT_FAILURE);
}
nie mam czegoś takiego jak:

Kod: Zaznacz cały

YOURSVNUSER
Jedynym użytkownikiem, który jest w stanie wykonać polecenie:

Kod: Zaznacz cały

svn update
w katalogach jest root (dla pozostałych jest napisane, że brak dostępu) ale nikt nie zna jego hasła.

Czy ktoś ma jakiś pomysł?
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

ODPOWIEDZ