Nie do końca rozumiem się jeszcze z tym narzędziem więc mam parę pytań z prośbą o wyjaśnienie. Zauważyłem w PLDowych repozytoriach, że w poszczególnych modułach istnieje po kilka initial commitów (bez parenta). Część z nich jest przypisana do branchy ale niektóre nie. Np. dla coreutils:
$ git rev-list --max-parents=0 --all 9cf1593a28075883f1880131ea15f9c6e046986b 5a006e8adf4446d30b3681b146cdb35f914ef29b a30b82d494633d30a65fa15f06b33724068ba98e $ git branch -a --contains 9cf1593a28075883f1880131ea15f9c6e046986b * master remotes/origin/DEVEL remotes/origin/HEAD -> origin/master remotes/origin/RA-branch remotes/origin/master $ git branch -a --contains 5a006e8adf4446d30b3681b146cdb35f914ef29b remotes/origin/AC-branch $ git branch -a --contains a30b82d494633d30a65fa15f06b33724068ba98e $ Zastanawiałem się, jak stworzyć takiego commita bez parenta i bez brancha i udało mi się to zrobić za pomocą git-commit-tree, rzeczywiście nie ma parenta, jednakże nie jest on pokazywany przez git-rev-list, a git-fsck znajduje go jako sierotę: $ git write-tree d936ff7c9b575ca10f16a26b6ec7ec4087f1dd44 $ git commit-tree -m test d936ff7c9b575ca10f16a26b6ec7ec4087f1dd44 bb2ef6a355614ee670a230264711a2dc53676434 $ git log --format=raw bb2ef6a355614ee670a230264711a2dc53676434 | grep parent $ git rev-list --all | grep bb2ef6a355614ee670a230264711a2dc53676434 $ git fsck Checking object directories: 100% (256/256), done. Checking objects: 100% (1225/1225), done. dangling commit bb2ef6a355614ee670a230264711a2dc53676434 $ Mam więc w związku z tym następujące pytania: 1. Czy legalne dla gita jest wiele initial commitów w obrębie jednego brancha? 2. Czy legalne dla gita jest istnienie commitów poza branchami? 3. Czy taka sytuacja, że jest wiele initial commitów i niektóre nie są przypisane do żadnego z branchy, a wszystkie pokazywane są przez git-rev-list jest skutkiem migracji z cvsa (cvs2git zainicjował w taki dziwny sposób repo) czy można ją uzyskać również normalnie? 4. Dlaczego git-rev-list --all nie pokazuje ręcznie stworzonego commita bez parenta i co zrobić, żeby pokazywał? 5. Czy da się wylistować faktycznie wszystkie commity w repozytorium? Z góry dzięki za wyjaśnienie. _______________________________________________ pld-devel-pl mailing list pld-devel-pl@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl