5.1 KiB
Series
Ten dokument opisuje komendy rvctl do pracy z seriami, kartami pracy i
zadaniami w kartach.
Zasada
Komendy kart pracy dzielimy na trzy poziomy:
series- operacje na serii jako całościseries cards- operacje na kartach w ramach seriiseries cards tasks- operacje na zadaniach w ramach karty
rvctl tworzy series_root, jeżeli katalog jeszcze nie istnieje. Lista serii
i kart pochodzi docelowo z publicznego manifestu
~/dev/workspace/rv/meta/workspace-info/workspace.json. Jeżeli manifestu nie
ma, narzędzie używa starego fallbacku przez original_series_root.
Szybki przepływ
./rvctl tokens compare
./rvctl workspace sync
./rvctl series list
./rvctl series cards list inf
./rvctl series cards fetch inf bss
./rvctl tasks list
./rvctl tasks switch 1
Dla karty bss właściwym repo jest lab-rv32i-strlen-bss-data-stack.
Serie
series list
Listuje dostępne serie z manifestu workspace-info oraz liczbę kart już
pobranych do lokalnego workspace. Jeżeli ~/dev/workspace/rv/series nie
istnieje, komenda tworzy ten katalog.
./rvctl series list
Typowy wynik:
fiz 3 0
inf 3 0
Kolumny oznaczają: seria, liczba kart w źródłach, liczba kart pobranych do workspace.
series show SERIES
Pokazuje informacje o serii.
./rvctl series show inf
Karty
series cards list SERIES
Listuje karty w wybranej serii.
./rvctl series cards list inf
Przykładowy wynik:
bss lab-rv32i-strlen-bss-data-stack source rv32i-c / bss-data-stack
Pierwsza kolumna jest krótką nazwą karty. Pełna nazwa repo zostaje w drugiej kolumnie.
series cards fetch SERIES CARD
Pobiera albo aktualizuje jedną kartę w workspace. CARD może być krótką nazwą
albo unikalnym fragmentem pełnej nazwy repo.
./rvctl series cards fetch inf bss
Karta trafia do:
~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack
Po pobraniu rvctl przygotowuje remotes:
r1- repo źródłowe karty wedu-infr1a- repo pracy wc2025-1a-inf
Remote r1a jest tworzony z tokena r1 i wskazuje na repo o tej samej nazwie
co karta:
http://77.90.8.171:3001/c2025-1a-inf/lab-rv32i-strlen-bss-data-stack.git
series cards show SERIES CARD
Pokazuje informacje o karcie.
./rvctl series cards show inf bss
series cards submission SERIES CARD
Pokazuje albo stosuje konfigurację repo odpowiedzi dla karty.
./rvctl series cards submission inf bss --class c2025-1a-inf
./rvctl series cards submission inf bss --class c2025-1a-inf --task 4 --apply
Bez --apply komenda pokazuje plan. Z --apply ustawia remotes potrzebne do
pracy z repo odpowiedzi. Jeżeli nie podasz --branch, branch jest liczony ze
store tokenów i zadania, na przykład u1T1a.
Zadania w karcie
Zadania są częścią karty, dlatego trzymamy je pod series cards tasks.
Do codziennej pracy z domyślną kartą można używać krótszego namespace tasks.
series cards tasks list SERIES CARD
Listuje zadania dostępne w konkretnej karcie.
rvctl rozpoznaje zadania zapisane jako pliki lub katalogi task* w
src/tasks, a także katalogi task* bezpośrednio w korzeniu karty.
./rvctl series cards tasks list inf bss
Skrót dla domyślnej karty:
./rvctl tasks list
Przykładowy wynik:
inf bss task1_bss ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task1_bss.c
inf bss task2_data ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task2_data.c
inf bss task3_stack_unused ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task3_stack_unused.c
inf bss task4_stack_strlen ~/dev/workspace/rv/series/inf/lab-rv32i-strlen-bss-data-stack/src/tasks/task4_stack_strlen.c
series cards tasks show SERIES CARD TASK
Pokazuje informacje o konkretnym zadaniu w karcie.
./rvctl series cards tasks show inf bss task1
Skrót dla domyślnej karty:
./rvctl tasks show 1
series cards tasks switch SERIES CARD TASK
Tworzy albo przełącza lokalny branch pracy dla wybranego zadania.
./rvctl series cards tasks switch inf bss 4
Skrót dla domyślnej karty:
./rvctl tasks switch 4
Nazwa brancha jest liczona automatycznie z użytkownika w tokens.json i numeru
zadania. Dla użytkownika u1 i zadania task4_stack_strlen powstanie:
u1T4a
Jeżeli branch już istnieje, rvctl przełącza na niego repo. Jeżeli go nie ma,
tworzy go od aktualnego commita karty. Branch dostaje upstream r1a/<branch>,
na przykład r1a/u1T4a.
Na tym poziomie nie wprowadzamy osobnego fetch: zadania są pobierane razem z
kartą przez series cards fetch albo razem z całą serią przez series fetch.
Aliasowanie Starych Komend
Stare komendy zostają jako aliasy kompatybilności:
list-series -> series list
list-cards inf -> series cards list inf
submission inf bss --class K -> series cards submission inf bss --class K
Dokumentacja i nowe przykłady powinny promować namespace series.