ďťż
 
SVN i projket składany z kawałków ďťż
 
SVN i projket składany z kawałków
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

SVN i projket składany z kawałków



Sebastian Biały - 24-12-2006 01:15
SVN i projket składany z kawałków
  Witam!

Taka sprawa:

Mam 2 projekty: A i B. Obydwa korzystają ze wspólnej biblioteki X, choć
są w zasadzie mocno różne i nigdy nie będa stanowiły całości.

Wszystkie projkety A,B i X powinny być pod kontrolą SVN.

X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
zostało, bo to jest zdecydowanie bardziej naturalne).

Mam serwer SVN. Nie chce coś popsuć, więc zapytam o to czy koncepcję mam
słuszną:

Projekty A,B i X są trzymane w SVN osobno.

Aby zrobić checkout na A to robie checkout :), tworze katalog dla X i
robie checkout X w tym katalogu. Dostaje co chce, ale efektem tego
repozytorium A na dysku jest "inne" niż na serwerze.

Niestety jest to metoda ręczna i nieciekawa.

Pytanie wobec tego: czy moja koncepcja nie kłuci się z filozofią SVN a w
szczególnoci czy można to rozwiązać lepiej?

Od razu mówie, że ściąganie całości, aby ściągnąć A nie ma sensu.
Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
problemu i rozwiązania możliwie bez kombinowania.





sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> Witam!
>
> Taka sprawa:
>
> Mam 2 projekty: A i B. Obydwa korzystają ze wspólnej biblioteki X, choć
> są w zasadzie mocno różne i nigdy nie będa stanowiły całości.
>
> Wszystkie projkety A,B i X powinny być pod kontrolą SVN.
>
> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).
>
> Mam serwer SVN. Nie chce coś popsuć, więc zapytam o to czy koncepcję mam
> słuszną:
>
> Projekty A,B i X są trzymane w SVN osobno.
>
> Aby zrobić checkout na A to robie checkout :), tworze katalog dla X i
> robie checkout X w tym katalogu. Dostaje co chce, ale efektem tego
> repozytorium A na dysku jest "inne" niż na serwerze.
>
> Niestety jest to metoda ręczna i nieciekawa.
>
> Pytanie wobec tego: czy moja koncepcja nie kłuci się z filozofią SVN a w
> szczególnoci czy można to rozwiązać lepiej?
>
> Od razu mówie, że ściąganie całości, aby ściągnąć Anie ma sensu.
> Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
> przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
> X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
> po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
> problemu i rozwiązania możliwie bez kombinowania.

to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projekty i z
niczym się to nie kłóci.
Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
skrypcik w shellu, który to zrobi automatycznie




sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> Witam!
>
> Taka sprawa:
>
> Mam 2 projekty: A i B. Obydwa korzystają ze wspólnej biblioteki X, choć
> są w zasadzie mocno różne i nigdy nie będa stanowiły całości.
>
> Wszystkie projkety A,B i X powinny być pod kontrolą SVN.
>
> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).
>
> Mam serwer SVN. Nie chce coś popsuć, więc zapytam o to czy koncepcję mam
> słuszną:
>
> Projekty A,B i X są trzymane w SVN osobno.
>
> Aby zrobić checkout na A to robie checkout :), tworze katalog dla X i
> robie checkout X w tym katalogu. Dostaje co chce, ale efektem tego
> repozytorium A na dysku jest "inne" niż na serwerze.
>
> Niestety jest to metoda ręczna i nieciekawa.
>
> Pytanie wobec tego: czy moja koncepcja nie kłuci się z filozofią SVN a w
> szczególnoci czy można to rozwiązać lepiej?
>
> Od razu mówie, że ściąganie całości, aby ściągnąć Anie ma sensu.
> Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
> przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
> X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
> po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
> problemu i rozwiązania możliwie bez kombinowania.

to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projekty i z
niczym się to nie kłóci.
Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
skrypcik w shellu, który to zrobi automatycznie




Sebastian Biały - 24-12-2006 01:15

  sg wrote:
> to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
> samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projekty i z
> niczym się to nie kłóci.
> Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
> skrypcik w shellu, który to zrobi automatycznie

Owszem mam tak teraz, ale ponieważ developing prowadzę ostatnio również
na windowsie to prosty skrypcik staje się nietrywialnym zaganieniem :)
Wiem wiem, że można ...

A całkiem serio: Chciałbym aby pliki projektu X wylądowały wewnatrz
źródeł A i B. Nie na wspólnym poziomie tylko własnie w głębi. I abym
robiąc "commit" na A zacommitował również X w środku.





Sebastian Biały - 24-12-2006 01:15

  sg wrote:
> to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
> samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projekty i z
> niczym się to nie kłóci.
> Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
> skrypcik w shellu, który to zrobi automatycznie

Owszem mam tak teraz, ale ponieważ developing prowadzę ostatnio również
na windowsie to prosty skrypcik staje się nietrywialnym zaganieniem :)
Wiem wiem, że można ...

A całkiem serio: Chciałbym aby pliki projektu X wylądowały wewnatrz
źródeł A i B. Nie na wspólnym poziomie tylko własnie w głębi. I abym
robiąc "commit" na A zacommitował również X w środku.




sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> sg wrote:
>> to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
>> samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projektyi z
>> niczym się to nie kłóci.
>> Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
>> skrypcik w shellu, który to zrobi automatycznie
>
> Owszem mam tak teraz, ale ponieważ developing prowadzę ostatnio również
> na windowsie to prosty skrypcik staje się nietrywialnym zaganieniem :)
> Wiem wiem, że można ...

serio? prosty plik co.bat z dwoma linijkami? w pierwszej linii wpisujesz:

svn.exe rep A

a w drugiej

svn.exe rep A\X

czy jakoś tak. Kiedyś przebrnąłem przez takie proste skrypty i naprawdę
nie jest to trudne :)

>
> A całkiem serio: Chciałbym aby pliki projektu X wylądowały wewnatrz
> źródeł A i B. Nie na wspólnym poziomie tylko własnie w głębi. I abym
> robiąc "commit" na A zacommitował również X w środku.

ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
sobie taki automatyczny skrypcik :)




sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> sg wrote:
>> to w ogóle jest bez sensu. Skoro X to biblioteka to trzymaj to na tym
>> samym poziomie katalogów o A i B. Wtedy masz 3 niezależne projektyi z
>> niczym się to nie kłóci.
>> Jak chcesz mieć automatyczny checkout AX i BX to napisz sobie prosty
>> skrypcik w shellu, który to zrobi automatycznie
>
> Owszem mam tak teraz, ale ponieważ developing prowadzę ostatnio również
> na windowsie to prosty skrypcik staje się nietrywialnym zaganieniem :)
> Wiem wiem, że można ...

serio? prosty plik co.bat z dwoma linijkami? w pierwszej linii wpisujesz:

svn.exe rep A

a w drugiej

svn.exe rep A\X

czy jakoś tak. Kiedyś przebrnąłem przez takie proste skrypty i naprawdę
nie jest to trudne :)

>
> A całkiem serio: Chciałbym aby pliki projektu X wylądowały wewnatrz
> źródeł A i B. Nie na wspólnym poziomie tylko własnie w głębi. I abym
> robiąc "commit" na A zacommitował również X w środku.

ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
sobie taki automatyczny skrypcik :)




Sebastian Biały - 24-12-2006 01:15

  sg wrote:
> serio? prosty plik co.bat z dwoma linijkami?

Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
Więc skrypty srednipo pasują. I dalej mam pytanie, czy "zgodne" ze
sztuką jest checkout jednego projektu w bebechy innego. Szukam
eleganckiego rozwiązania.

> ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
> sobie taki automatyczny skrypcik :)

No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafie się
tego doszukać.




Sebastian Biały - 24-12-2006 01:15

  sg wrote:
> serio? prosty plik co.bat z dwoma linijkami?

Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
Więc skrypty srednipo pasują. I dalej mam pytanie, czy "zgodne" ze
sztuką jest checkout jednego projektu w bebechy innego. Szukam
eleganckiego rozwiązania.

> ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
> sobie taki automatyczny skrypcik :)

No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafie się
tego doszukać.




sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> sg wrote:
>> serio? prosty plik co.bat z dwoma linijkami?
>
> Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
> tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
> Więc skrypty srednipo pasują.

Etam, Tortoise jest fajny do ręcznej zabawy, ale jak potrzebujesz
zautomatyzować to sobie to lepiej zrobić to tak, że masz skrypty.
Do tego skoro masz 5-6 projektów i każdy korzysta z biblioteki X to może
lepiej zrobić sobie np. taki skrypcik, który automatycznie zaktualizuje
wszystkie katalogi X? A takich rzeczy tortoise nie zrobi.

A tak wogóle to bawiłeś się ręcznym wpisywaniem komend SVNa w linii
poleceń? Jeśli tak to nie będziesz mieć żadnych problemów z napisaniem
sobie takiego skryptu.

> I dalej mam pytanie, czy "zgodne" ze
> sztuką jest checkout jednego projektu w bebechy innego. Szukam
> eleganckiego rozwiązania.
>

no to nie jest eleganckie, bo automatycznie musisz sobie oznaczyć ten
katalog X żeby nie był sprawdzany przy zabawie z A.

>> ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
>> sobie taki automatyczny skrypcik :)
>
> No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
> Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafiesię
> tego doszukać.

bo tego nie ma




sg - 24-12-2006 01:15

  Sebastian Biały napisał(a):
> sg wrote:
>> serio? prosty plik co.bat z dwoma linijkami?
>
> Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
> tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
> Więc skrypty srednipo pasują.

Etam, Tortoise jest fajny do ręcznej zabawy, ale jak potrzebujesz
zautomatyzować to sobie to lepiej zrobić to tak, że masz skrypty.
Do tego skoro masz 5-6 projektów i każdy korzysta z biblioteki X to może
lepiej zrobić sobie np. taki skrypcik, który automatycznie zaktualizuje
wszystkie katalogi X? A takich rzeczy tortoise nie zrobi.

A tak wogóle to bawiłeś się ręcznym wpisywaniem komend SVNa w linii
poleceń? Jeśli tak to nie będziesz mieć żadnych problemów z napisaniem
sobie takiego skryptu.

> I dalej mam pytanie, czy "zgodne" ze
> sztuką jest checkout jednego projektu w bebechy innego. Szukam
> eleganckiego rozwiązania.
>

no to nie jest eleganckie, bo automatycznie musisz sobie oznaczyć ten
katalog X żeby nie był sprawdzany przy zabawie z A.

>> ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
>> sobie taki automatyczny skrypcik :)
>
> No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
> Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafiesię
> tego doszukać.

bo tego nie ma




Marcin 'Qrczak' Kowalczyk - 24-12-2006 01:15

  Sebastian Biały <heby@poczta.onet.pl> writes:

> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).

Porzuć to założenie i życie stanie się prostsze.

--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/




Marcin 'Qrczak' Kowalczyk - 24-12-2006 01:15

  Sebastian Biały <heby@poczta.onet.pl> writes:

> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).

Porzuć to założenie i życie stanie się prostsze.

--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/




Sebastian Bialy - 24-12-2006 01:15

  Marcin 'Qrczak' Kowalczyk wrote:
> Porzuć to założenie i życie stanie się prostsze.

To jedna z opcji. Ale poszukam jeszcze, nie poddaje się łatwo :) Wbrew
pozorom zdecydowanie wygodniej tworzy mi się _ten_ zestaw programów
zakładając hierarchiczną budowę katalogów ze źródłami.




Sebastian Bialy - 24-12-2006 01:15

  Marcin 'Qrczak' Kowalczyk wrote:
> Porzuć to założenie i życie stanie się prostsze.

To jedna z opcji. Ale poszukam jeszcze, nie poddaje się łatwo :) Wbrew
pozorom zdecydowanie wygodniej tworzy mi się _ten_ zestaw programów
zakładając hierarchiczną budowę katalogów ze źródłami.




sg - 24-12-2006 01:15

  Sebastian Bialy napisał(a):
> Marcin 'Qrczak' Kowalczyk wrote:
>> Porzuć to założenie i życie stanie się prostsze.
>
> To jedna z opcji. Ale poszukam jeszcze, nie poddaje się łatwo :) Wbrew
> pozorom zdecydowanie wygodniej tworzy mi się _ten_ zestaw programów
> zakładając hierarchiczną budowę katalogów ze źródłami.

tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś w żadnej takiej
konfiguracji mieszać dłużej niż kilka dni. Jak ci się to rozrośnie na
20-30 projektów z czego większość to biblioteki, to też będziesz tak robił?




sg - 24-12-2006 01:15

  Sebastian Bialy napisał(a):
> Marcin 'Qrczak' Kowalczyk wrote:
>> Porzuć to założenie i życie stanie się prostsze.
>
> To jedna z opcji. Ale poszukam jeszcze, nie poddaje się łatwo :) Wbrew
> pozorom zdecydowanie wygodniej tworzy mi się _ten_ zestaw programów
> zakładając hierarchiczną budowę katalogów ze źródłami.

tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś w żadnej takiej
konfiguracji mieszać dłużej niż kilka dni. Jak ci się to rozrośnie na
20-30 projektów z czego większość to biblioteki, to też będziesz tak robił?




Sebastian Bialy - 24-12-2006 01:15

  sg wrote:
> tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś w żadnej takiej
> konfiguracji mieszać dłużej niż kilka dni. Jak ci się to rozrośnie na
> 20-30 projektów z czego większość to biblioteki, to też będziesz tak robił?

Nie - to dość specyficzny problem. Z jednego kawałka kodu w C/C++
korzystają targety na uC i na normalny OS. Sa na tyle różne, że nie mają
innych częsci stykowych. Ta wymienna część to zaledwie pare plików
..h/.cpp zapewniających wspólny pomost komunikacyjny. Z pewnych względów
(głównie uC) nie jest mi wygodnie generować biblioteki
..so/.dll/.o/whatever, wole umieścić część razem z resztą kodu uC (dla
zainteresowanych: trzeba ten sam kawałek .cpp przekopilować N razy dla
różnych kwarców/uC/konfiguracji/etc).

Oczywiście da się to zrobić "normalnie" ale ten problem przemyślałem już
pod różnymi kątami i wydaje mi się, że było by mi wygodniej zawierać X w
A i B niż korzystać równolegle.




Sebastian Bialy - 24-12-2006 01:15

  sg wrote:
> tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś w żadnej takiej
> konfiguracji mieszać dłużej niż kilka dni. Jak ci się to rozrośnie na
> 20-30 projektów z czego większość to biblioteki, to też będziesz tak robił?

Nie - to dość specyficzny problem. Z jednego kawałka kodu w C/C++
korzystają targety na uC i na normalny OS. Sa na tyle różne, że nie mają
innych częsci stykowych. Ta wymienna część to zaledwie pare plików
..h/.cpp zapewniających wspólny pomost komunikacyjny. Z pewnych względów
(głównie uC) nie jest mi wygodnie generować biblioteki
..so/.dll/.o/whatever, wole umieścić część razem z resztą kodu uC (dla
zainteresowanych: trzeba ten sam kawałek .cpp przekopilować N razy dla
różnych kwarców/uC/konfiguracji/etc).

Oczywiście da się to zrobić "normalnie" ale ten problem przemyślałem już
pod różnymi kątami i wydaje mi się, że było by mi wygodniej zawierać X w
A i B niż korzystać równolegle.




Deflokracja - 24-12-2006 01:15

  > Od razu mówie, że ściąganie całości, aby ściągnąć A nie ma sensu.
> Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
> przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
> X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
> po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
> problemu i rozwiązania możliwie bez kombinowania.

http://svnbook.red-bean.com/en/1.0/ch07s03.html
?

--
Deflokracja
http://deflokracja.blox.pl

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Deflokracja - 24-12-2006 01:15

  > Od razu mówie, że ściąganie całości, aby ściągnąć A nie ma sensu.
> Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
> przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
> X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
> po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
> problemu i rozwiązania możliwie bez kombinowania.

http://svnbook.red-bean.com/en/1.0/ch07s03.html
?

--
Deflokracja
http://deflokracja.blox.pl

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Sebastian Bialy - 24-12-2006 01:15

  Deflokracja wrote:
>>Od razu mówie, że ściąganie całości, aby ściągnąć A nie ma sensu.
>>Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
>>przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
>>X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
>>po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
>>problemu i rozwiązania możliwie bez kombinowania.
>
>
> http://svnbook.red-bean.com/en/1.0/ch07s03.html
> ?
>

Widziałem to, ale:

[...]if you want to commit changes that you've made in one or more of
those external working copies, you must run svn commit explicitly on
those working copies—committing on the primary working copy will not
recurse into any external ones.

No i to połowa sukcesu, aczkolwiek blisko.




Sebastian Bialy - 24-12-2006 01:15

  Deflokracja wrote:
>>Od razu mówie, że ściąganie całości, aby ściągnąć A nie ma sensu.
>>Chciałbym mieć te trzy projekty możliwie niezależne, ale jednocześnie
>>przy checkout A chciałbym mieć od razu X. Podobnie checkout B - od razu
>>X. No i oczywiście X w jednej kopii na serwerze. Dłubie od paru godzin
>>po dokumentacji i jakoś nie mogę znaleźć sensownego opisu mojego
>>problemu i rozwiązania możliwie bez kombinowania.
>
>
> http://svnbook.red-bean.com/en/1.0/ch07s03.html
> ?
>

Widziałem to, ale:

[...]if you want to commit changes that you've made in one or more of
those external working copies, you must run svn commit explicitly on
those working copies—committing on the primary working copy will not
recurse into any external ones.

No i to połowa sukcesu, aczkolwiek blisko.




sg - 24-12-2006 01:15

  Sebastian Bialy napisał(a):
> sg wrote:
>> tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś wżadnej
>> takiej konfiguracji mieszać dłużej niż kilka dni. Jak ci sięto
>> rozrośnie na 20-30 projektów z czego większość to biblioteki, to też
>> będziesz tak robił?
>
> Nie - to dość specyficzny problem. Z jednego kawałka kodu w C/C++
> korzystają targety na uC i na normalny OS. Sa na tyle różne, żenie mają
> innych częsci stykowych. Ta wymienna część to zaledwie pare plików
> ..h/.cpp zapewniających wspólny pomost komunikacyjny. Z pewnych względów
> (głównie uC) nie jest mi wygodnie generować biblioteki
> ..so/.dll/.o/whatever, wole umieścić część razem z resztą kodu uC (dla
> zainteresowanych: trzeba ten sam kawałek .cpp przekopilować N razy dla
> różnych kwarców/uC/konfiguracji/etc).
>
> Oczywiście da się to zrobić "normalnie" ale ten problem przemyślałem już
> pod różnymi kątami i wydaje mi się, że było by mi wygodniejzawierać X w
> A i B niż korzystać równolegle.

nie, to jest wygodniejsze pod warunkiem, że nie robisz nic dużego ani
nic długiego... bo jak to będzie większy projekt to lepiej mieć globalny
katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.
Natomiast dalej będę Cię przekonywał że jak chcesz sobie zautomatyzować
SVN/CVS/whatevera to najlepiej zrobić sobie skrypty.




sg - 24-12-2006 01:15

  Sebastian Bialy napisał(a):
> sg wrote:
>> tworzyć to może i łatwiej, ale rozumiem, że nie musiałeś wżadnej
>> takiej konfiguracji mieszać dłużej niż kilka dni. Jak ci sięto
>> rozrośnie na 20-30 projektów z czego większość to biblioteki, to też
>> będziesz tak robił?
>
> Nie - to dość specyficzny problem. Z jednego kawałka kodu w C/C++
> korzystają targety na uC i na normalny OS. Sa na tyle różne, żenie mają
> innych częsci stykowych. Ta wymienna część to zaledwie pare plików
> ..h/.cpp zapewniających wspólny pomost komunikacyjny. Z pewnych względów
> (głównie uC) nie jest mi wygodnie generować biblioteki
> ..so/.dll/.o/whatever, wole umieścić część razem z resztą kodu uC (dla
> zainteresowanych: trzeba ten sam kawałek .cpp przekopilować N razy dla
> różnych kwarców/uC/konfiguracji/etc).
>
> Oczywiście da się to zrobić "normalnie" ale ten problem przemyślałem już
> pod różnymi kątami i wydaje mi się, że było by mi wygodniejzawierać X w
> A i B niż korzystać równolegle.

nie, to jest wygodniejsze pod warunkiem, że nie robisz nic dużego ani
nic długiego... bo jak to będzie większy projekt to lepiej mieć globalny
katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.
Natomiast dalej będę Cię przekonywał że jak chcesz sobie zautomatyzować
SVN/CVS/whatevera to najlepiej zrobić sobie skrypty.




Michał 'Khorne' Rzechonek - 24-12-2006 01:15

  Sebastian Bialy wrote:
> Widziałem to, ale:
>
> [...]if you want to commit changes that you've made in one or more of
> those external working copies, you must run svn commit explicitly on
> those working copies-committing on the primary working copy will not
> recurse into any external ones.
>
> No i to połowa sukcesu, aczkolwiek blisko.

Więcej nie dostaniesz. Linkowanie repozytoriów jest w planach,
por. http://svn.haxx.se/dev/archive-2006-06/0856.shtml, ale IIRC
na liście wyżej jest np. automatyczne śledzenie merge'ów.

--
Michał 'Khorne' Rzechonek




Michał 'Khorne' Rzechonek - 24-12-2006 01:15

  Sebastian Bialy wrote:
> Widziałem to, ale:
>
> [...]if you want to commit changes that you've made in one or more of
> those external working copies, you must run svn commit explicitly on
> those working copies-committing on the primary working copy will not
> recurse into any external ones.
>
> No i to połowa sukcesu, aczkolwiek blisko.

Więcej nie dostaniesz. Linkowanie repozytoriów jest w planach,
por. http://svn.haxx.se/dev/archive-2006-06/0856.shtml, ale IIRC
na liście wyżej jest np. automatyczne śledzenie merge'ów.

--
Michał 'Khorne' Rzechonek




Kamil Burzynski - 24-12-2006 01:15

  On Tue, 10 Oct 2006 18:13:40 +0200
Sebastian Biały <heby@poczta.onet.pl> wrote:

> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).

Jak uzyjesz WinAPI to tez bedziesz chcial zeby wszystkie include'y
i .dll byly w tym repozytorium? A jak bedziesz musial dane do Worda
exportowac, to Worda tez wsadzisz do swojego repozytorium? Ew. jesli
calosc jest mierzona glownie pod un*xy pytanie mozna odwrocic - np. czy
bedziesz kladl caly kernel linuxowy do srodka? I tak dalej...

--
Best regards from
Kamil Burzynski




Kamil Burzynski - 24-12-2006 01:15

  On Tue, 10 Oct 2006 18:13:40 +0200
Sebastian Biały <heby@poczta.onet.pl> wrote:

> X jest jednym z podkatalogów w źródłach A i B (i wolałbym żeby tak
> zostało, bo to jest zdecydowanie bardziej naturalne).

Jak uzyjesz WinAPI to tez bedziesz chcial zeby wszystkie include'y
i .dll byly w tym repozytorium? A jak bedziesz musial dane do Worda
exportowac, to Worda tez wsadzisz do swojego repozytorium? Ew. jesli
calosc jest mierzona glownie pod un*xy pytanie mozna odwrocic - np. czy
bedziesz kladl caly kernel linuxowy do srodka? I tak dalej...

--
Best regards from
Kamil Burzynski




Paweł Kierski - 24-12-2006 01:15

  Sebastian Biały w wiadomości <eggn5t$q5l$1@uranos.cto.us.edu.pl> pisze:
> sg wrote:
> > serio? prosty plik co.bat z dwoma linijkami?
>
> Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
> tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
> Więc skrypty srednipo pasują. I dalej mam pytanie, czy "zgodne" ze
> sztuką jest checkout jednego projektu w bebechy innego. Szukam
> eleganckiego rozwiązania.
>
> > ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
> > sobie taki automatyczny skrypcik :)
>
> No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
> Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafie się
> tego doszukać.

No właśnie - też szukałem. Tym bardziej, że bywają projekty, w
których w trakcie rozwoju pliki "wspólne" w źródłach pojawiają się w
sposobó ciężki do przewidzenia. Tylko dlatego że nagle w B potrzebuję
pliku x.h powoduje, że muszę albo sięgać explicite do katalogu z A (i
wymagać checkoutu A przy checkout'cie B i to w ścisłym odwzorowaniu
drzewa), albo przerabiać komuś #include'y w A, żeby przenieść x.h do
katalogu wspólnego.
Wychodzi na to, że przydałaby się jeszcze jedna, "ortogonalna"
relacja "wspólności" oprócz tworzenia branch'y.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




Paweł Kierski - 24-12-2006 01:15

  Sebastian Biały w wiadomości <eggn5t$q5l$1@uranos.cto.us.edu.pl> pisze:
> sg wrote:
> > serio? prosty plik co.bat z dwoma linijkami?
>
> Przypadek z dwoma projektami jest ... powiedzmy ... brzegowy. Aktualnie
> tego jest 5-6 sztuk. W dodatku na windowsie preferuje Tortoise do SVN.
> Więc skrypty srednipo pasują. I dalej mam pytanie, czy "zgodne" ze
> sztuką jest checkout jednego projektu w bebechy innego. Szukam
> eleganckiego rozwiązania.
>
> > ech, takie rzeczy to tylko w erze... nie da się... chyba, że zrobisz
> > sobie taki automatyczny skrypcik :)
>
> No ładnie :/ W zasadzie potrzebuje odpowiednik soft-link w repozytorium.
> Rozwiązało by mi to sporo problemów. W dokumentacji nie potrafie się
> tego doszukać.

No właśnie - też szukałem. Tym bardziej, że bywają projekty, w
których w trakcie rozwoju pliki "wspólne" w źródłach pojawiają się w
sposobó ciężki do przewidzenia. Tylko dlatego że nagle w B potrzebuję
pliku x.h powoduje, że muszę albo sięgać explicite do katalogu z A (i
wymagać checkoutu A przy checkout'cie B i to w ścisłym odwzorowaniu
drzewa), albo przerabiać komuś #include'y w A, żeby przenieść x.h do
katalogu wspólnego.
Wychodzi na to, że przydałaby się jeszcze jedna, "ortogonalna"
relacja "wspólności" oprócz tworzenia branch'y.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




Paweł Kierski - 24-12-2006 01:15

  sg w wiadomości <eggtva$d3b$1@inews.gazeta.pl> pisze:
> [...]
> bo jak to będzie większy projekt to lepiej mieć globalny
> katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.

Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
ten kawałek o tym nowym module nikt jeszcze nie słyszał.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




Paweł Kierski - 24-12-2006 01:15

  sg w wiadomości <eggtva$d3b$1@inews.gazeta.pl> pisze:
> [...]
> bo jak to będzie większy projekt to lepiej mieć globalny
> katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.

Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
ten kawałek o tym nowym module nikt jeszcze nie słyszał.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




sg - 24-12-2006 01:15

  Paweł Kierski napisał(a):
> sg w wiadomości <eggtva$d3b$1@inews.gazeta.pl> pisze:
>> [...]
>> bo jak to będzie większy projekt to lepiej mieć globalny
>> katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.
>
> Bywa tak, że "wspólność" plików wychodzi dużo później- ciężko
> czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
> miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
> ten kawałek o tym nowym module nikt jeszcze nie słyszał.
>

to wtedy ten kawałek źródła przenoszę do jakiejś globalnej przestrzeni a
nie tylko do danego projektu A czy B




sg - 24-12-2006 01:15

  Paweł Kierski napisał(a):
> sg w wiadomości <eggtva$d3b$1@inews.gazeta.pl> pisze:
>> [...]
>> bo jak to będzie większy projekt to lepiej mieć globalny
>> katalog X (jeden) i niech każdy projekt sobie korzysta z tych plików.
>
> Bywa tak, że "wspólność" plików wychodzi dużo później- ciężko
> czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
> miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
> ten kawałek o tym nowym module nikt jeszcze nie słyszał.
>

to wtedy ten kawałek źródła przenoszę do jakiejś globalnej przestrzeni a
nie tylko do danego projektu A czy B




Paweł Kierski - 24-12-2006 01:15

  sg w wiadomości <egi9bf$1kv$3@inews.gazeta.pl> pisze:
[...]
> > Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
> > czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
> > miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
> > ten kawałek o tym nowym module nikt jeszcze nie słyszał.
> >
>
> to wtedy ten kawałek źródła przenoszę do jakiejś globalnej przestrzeni a
> nie tylko do danego projektu A czy B

OK - wiem, że to jest rozwiązanie, ale wymaga zmian w projekcie
"źródłowym". Po za tym przy kilku projektach w globalnej przestrzeni
robi się niezły bałagan. Z kolei próba posegregowania na zasadzie
/common/AB, /common/AC, /common/BC, /common/ABC... prowadzi do jeszcze
większego zamieszania, bo liczba takich katalogów "wspólnych" rośnie
wykładniczo. Linki w repozytorium załatwiłyby sprawę.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




Paweł Kierski - 24-12-2006 01:15

  sg w wiadomości <egi9bf$1kv$3@inews.gazeta.pl> pisze:
[...]
> > Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
> > czasem przewidzieć, że jakiś kawałek źródła przyda się za kilka
> > miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
> > ten kawałek o tym nowym module nikt jeszcze nie słyszał.
> >
>
> to wtedy ten kawałek źródła przenoszę do jakiejś globalnej przestrzeni a
> nie tylko do danego projektu A czy B

OK - wiem, że to jest rozwiązanie, ale wymaga zmian w projekcie
"źródłowym". Po za tym przy kilku projektach w globalnej przestrzeni
robi się niezły bałagan. Z kolei próba posegregowania na zasadzie
/common/AB, /common/AC, /common/BC, /common/ABC... prowadzi do jeszcze
większego zamieszania, bo liczba takich katalogów "wspólnych" rośnie
wykładniczo. Linki w repozytorium załatwiłyby sprawę.

--
Paweł Kierski
news@pkierski.net
dodaj "[nomorespam]" w temacie jeśli piszesz z domeny innej niż .pl,
albo koniecznie chcesz obejść moje filtry 8-)




sg - 24-12-2006 01:15

  Paweł Kierski napisał(a):
> sg w wiadomości <egi9bf$1kv$3@inews.gazeta.pl> pisze:
> [...]
>>> Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
>>> czasem przewidzieć, że jakiś kawałek źródła przyda sięza kilka
>>> miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
>>> ten kawałek o tym nowym module nikt jeszcze nie słyszał.
>>>
>> to wtedy ten kawałek źródła przenoszę do jakiejś globalnejprzestrzeni a
>> nie tylko do danego projektu A czy B
>
> OK - wiem, że to jest rozwiązanie, ale wymaga zmian w projekcie
> "źródłowym". Po za tym przy kilku projektach w globalnej przestrzeni
> robi się niezły bałagan. Z kolei próba posegregowania na zasadzie
> /common/AB, /common/AC, /common/BC, /common/ABC... prowadzi do jeszcze
> większego zamieszania, bo liczba takich katalogów "wspólnych" rośnie
> wykładniczo. Linki w repozytorium załatwiłyby sprawę.
>
no tak, ale na razie tego niestety nie ma, buuuuu




sg - 24-12-2006 01:15

  Paweł Kierski napisał(a):
> sg w wiadomości <egi9bf$1kv$3@inews.gazeta.pl> pisze:
> [...]
>>> Bywa tak, że "wspólność" plików wychodzi dużo później - ciężko
>>> czasem przewidzieć, że jakiś kawałek źródła przyda sięza kilka
>>> miesięcy przy implementacji innego modułu. Tym bardziej, że tworząc
>>> ten kawałek o tym nowym module nikt jeszcze nie słyszał.
>>>
>> to wtedy ten kawałek źródła przenoszę do jakiejś globalnejprzestrzeni a
>> nie tylko do danego projektu A czy B
>
> OK - wiem, że to jest rozwiązanie, ale wymaga zmian w projekcie
> "źródłowym". Po za tym przy kilku projektach w globalnej przestrzeni
> robi się niezły bałagan. Z kolei próba posegregowania na zasadzie
> /common/AB, /common/AC, /common/BC, /common/ABC... prowadzi do jeszcze
> większego zamieszania, bo liczba takich katalogów "wspólnych" rośnie
> wykładniczo. Linki w repozytorium załatwiłyby sprawę.
>
no tak, ale na razie tego niestety nie ma, buuuuu




Sebastian Bialy - 24-12-2006 01:15

  Sebastian Biały wrote:
> [ciach]

Napiszę nieco więcej o problemie, bo może znajdzie się inne rozwiązanie
niż SVN.

Konkretnie: mam projekty różne nazwane A,B,C,D,...

Większość z nich jest kierowana na CPU z mikroskopijnymi ilościami
RAM/ROM. Zmuszony jestem kompilować kod tak, aby zminimalizaować jego
długość i pamięciożernośc.

Wszystkie projekty korzystają ze wspólnego kawałka kodu X.

Niestety kod X w zależoności od architektury/zasobów sprzętowych/etc za
każdym razem może wyglądać całkiem inaczej. Z powodów o których mówiłem
steruje jego wynikiem za pomocą definicji kompilatora z każdego projektu
inaczej. Np: raz X używa UARTa sprzętowego, niekiedy go emuluje, a
czasami w ogóle nie ma.

Problem:

Aby usunąć kod X na zewnątrz projektów do biblioteki musiałbym
przewidzieć każdą możliwą kombinację definicji sterujących jego budową i
wyprodukowac obiekty. W dodatku nie każda kombinacja jest możliwa/ma sens.

Każdy projekt A,B,C definiuje swoje potrzeby z użyciem jakiś definicji i
pod jego potrzeby generowany jest kod z X. Jesli X zawiera się w A,B,C
to sprawa jest prosta i oczywista. Jeśli jest poza - nie widze
możliwości jego generowania niezależnie od A,B,C (a nawet jesli to
nieoptymalnie i niewygodnie).

Od razu mówie, że stosowanie w moim przypadku wymyślnych wzorców
projektowych w tym samym celu w ogóle się nie sprawdzi - ja walcze o
pojedyncze bajty i jedyną możliwością jest #ifdef [...] #endif. Nawet
podział X na obiekty nie ma sensu, bo i tak musze pojedyncze skłądniki
kompilować wielokrotnie dla różnych prędkości kwarców stosowanych w A,B,C,D.

Może jednak istnieje jakieś rozwiązanie inne niż pomysł z repozytorium i
linkami wewnątrz?




Sebastian Bialy - 24-12-2006 01:15

  Sebastian Biały wrote:
> [ciach]

Napiszę nieco więcej o problemie, bo może znajdzie się inne rozwiązanie
niż SVN.

Konkretnie: mam projekty różne nazwane A,B,C,D,...

Większość z nich jest kierowana na CPU z mikroskopijnymi ilościami
RAM/ROM. Zmuszony jestem kompilować kod tak, aby zminimalizaować jego
długość i pamięciożernośc.

Wszystkie projekty korzystają ze wspólnego kawałka kodu X.

Niestety kod X w zależoności od architektury/zasobów sprzętowych/etc za
każdym razem może wyglądać całkiem inaczej. Z powodów o których mówiłem
steruje jego wynikiem za pomocą definicji kompilatora z każdego projektu
inaczej. Np: raz X używa UARTa sprzętowego, niekiedy go emuluje, a
czasami w ogóle nie ma.

Problem:

Aby usunąć kod X na zewnątrz projektów do biblioteki musiałbym
przewidzieć każdą możliwą kombinację definicji sterujących jego budową i
wyprodukowac obiekty. W dodatku nie każda kombinacja jest możliwa/ma sens.

Każdy projekt A,B,C definiuje swoje potrzeby z użyciem jakiś definicji i
pod jego potrzeby generowany jest kod z X. Jesli X zawiera się w A,B,C
to sprawa jest prosta i oczywista. Jeśli jest poza - nie widze
możliwości jego generowania niezależnie od A,B,C (a nawet jesli to
nieoptymalnie i niewygodnie).

Od razu mówie, że stosowanie w moim przypadku wymyślnych wzorców
projektowych w tym samym celu w ogóle się nie sprawdzi - ja walcze o
pojedyncze bajty i jedyną możliwością jest #ifdef [...] #endif. Nawet
podział X na obiekty nie ma sensu, bo i tak musze pojedyncze skłądniki
kompilować wielokrotnie dla różnych prędkości kwarców stosowanych w A,B,C,D.

Może jednak istnieje jakieś rozwiązanie inne niż pomysł z repozytorium i
linkami wewnątrz?




Piotr Dembiński - 24-12-2006 01:15

  Sebastian Biały <heby@poczta.onet.pl> writes:

[...]

> czy "zgodne" ze sztuką jest checkout jednego projektu w bebechy
> innego. Szukam eleganckiego rozwiązania.

Jeśli potrafisz projektować/programować, to najlepiej chyba
potraktować infrastrukturę w ramach której pisze się program jako
pewien system informatyczny i zaprojekotwać/przeprojektować ten system
tak, jak każdy inny.

--
http://www.piotr.dembiński.prv.pl




Piotr Dembiński - 24-12-2006 01:15

  Sebastian Biały <heby@poczta.onet.pl> writes:

[...]

> czy "zgodne" ze sztuką jest checkout jednego projektu w bebechy
> innego. Szukam eleganckiego rozwiązania.

Jeśli potrafisz projektować/programować, to najlepiej chyba
potraktować infrastrukturę w ramach której pisze się program jako
pewien system informatyczny i zaprojekotwać/przeprojektować ten system
tak, jak każdy inny.

--
http://www.piotr.dembiński.prv.pl
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    kilka obrazków składa się na jeden widok skladanie zdjecia ze zdjec Najlepsze praktyki projketowania graficznego interfejsu z użytkownikiem [mysql] Drobny problem z UPPER() ms sql i spacje na koncu danych Problem z materiałem Light Block oracle developer suite - problemy Szukam skryptu GPTR - do wysylania platnych E-maili mysql dodawanie nowych wierszy FB i użytkownicy XP Home
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • dirtyboys.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com