èªåã®ãããžã§ã¯ãã§ãã®ããŒã«ãŸãã¯ãã®ããŒã«ã䜿çšããããšã決å®ããå Žåããšã³ãžãã¢ã¯ãµããŒãææžãæ€èšããã ãã§ãªããå°æ¥ã®æœåšçãªåé¡ãåé¿ããããã«äžé£ã®å®éšãå®æœããå¿
èŠããããŸãã é·æçã«èšèšãããCMããªã·ãŒã«ã€ããŠè©±ããŠããå Žåãéžæãšã©ãŒã®äŸ¡æ Œã¯éåžžã«é«ããªããŸãã
ãã®ããŒããŒã®ç®æšã¯ã GitãµãããªãŒç®¡çããŒã«ãå®è·µããããšã§ãã
ãªããžã§ã³1.7.11ããã contrib / subtreeãã£ã¬ã¯ããªã®Gitã¢ããã¹ããªãŒã ãªããžããªã«ã¯ã ãµãããªãŒã§ã®äœæ¥ãèªååããããŒã«ãå«ãŸããŠããŸã ã
git-subtreeïŒ1ïŒãµãŒãã¹ã¯ãå®éã«ã¯git-read-treeïŒ1ïŒããã³git-write-treeïŒ1ïŒé¢æ°ã䜿çšãã䟿å©ãªã¢ããªã³ã§ãã ãããã£ãŠã git-subtreeïŒ1ïŒã®ãªã³ã¯ã¯add / pull / pushã³ãã³ãã§ãïŒ
git subtree add --prefix=<subdir> <remote> <ref>
ãªã¢ãŒããªããžããªã®ãã©ã³ãåãŸãã¯ã¿ã°åã®ããããã§ãã
ããã«ã次ã®ã³ãã³ãã䜿çšããŠããªã¢ãŒããªããžããªãããŒã«ã«ãªããžããªã®æ§æãã¡ã€ã«.git / configã«äºåã«è¿œå ããå ŽåïŒ
bash-4.4$ git remote add build-system ../../remote/build-system.git
build-systemã¯ãªã¢ãŒããªããžããªã®åå../../remote/build-system.gitã§ãããåŸã§git-subtreeïŒ1ïŒadd / pull / pushã³ãã³ãã䜿çšããŠãäžæµã®remote / repositoryãåç
§ã§ããŸãååã«ããbuild-system.git ã
çŸæç¹ã§ã¯ã git-subtreeïŒ1ïŒã¯å®éã«ã¯éçºãããŠããŸãããã Gitãããžã§ã¯ãã®çŸåšã®éçºåºŠã«ã€ããŠã®ã¿ææ°ã®ç¶æ
ã«ä¿ãããŠããŸãã
ãã ãã git-subtreeïŒ1ïŒã¯ããµãããªãŒãæäœããããã®æãäžè¬çã§åŒ·åãªããŒã«ã§ãã
ãã¹ãç°å¢
ååã® git-subrepoïŒ1ïŒã® èšäºã§ã¯ããã¹ããªããžããªã䜿çšããåçŽãªãã£ã¬ã¯ããªæ§é ã䜿çšããŠãé¢æ°ãå®éã«ã©ã®ããã«æ©èœãããã瀺ããŸããã 次ã®ç°å¢ãåçŸããŸãã
bash-4.4$ vim _init.sh
ããã«
ææè
| - | ãããžã§ã¯ãäœæè
ã®äœæ¥ãã£ã¬ã¯ããªã |
é ã | - | ã¡ã€ã³ãããžã§ã¯ãplatform.gitããã³ãµããããžã§ã¯ãbuild-system.gitã®ã¢ããã¹ããªãŒã ãªããžããªããããããžã§ã¯ãã®äœæè
ã®ãµãŒããŒãè¡šããã£ã¬ã¯ããªã |
ãŠãŒã¶ãŒ | - | ãŠãŒã¶ãŒãŸãã¯éçºããŒã ã®ã¡ã³ããŒã®äœæ¥ãã£ã¬ã¯ã㪠|
git-subtreeïŒ1ïŒã®æ©èœãç 究ããç®æšãšããŠã Git Subrepoã®èšäºã§èª¬æãããã¹ãŠã®ã¿ã¹ã¯ãæ€èšããŸããã2ã€ã®ããŒã«ã®éããèæ
®ããŸãã
ãµãããªãŒãæ¥ç¶ãã
remote / platform.gitãªããžããªã®çŸåšã®ç¶æ
ãèŠããŠãããŠãã ããïŒ
bash-4.4$ bash-4.4$ cd owner/platform/ bash-4.4$ git log commit 7fad4becbd13258216fb95cbe9d987dd33f0be6d (HEAD -> master, origin/master) Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init platform master 1.0.0 bash-4.4$
ãããŠãã¢ããã¹ããªãŒã ãªããžããªremote / build-system.gitã®masterãã©ã³ããbuild-systemãã£ã¬ã¯ããªã«æ¥ç¶ããŸãã
bash-4.4$ bash-4.4$ git subtree add --prefix=build-system ../../remote/build-system.git/ master git fetch ../../remote/build-system.git/ master warning: no common commits remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From ../../remote/build-system * branch master -> FETCH_HEAD Added dir 'build-system' bash-4.4$
remote / platform.gitãªããžããªã®ããŒã«ã«ã³ããŒã®æ°ããç¶æ
ãæ€èšããŸãã
bash-4.4$ bash-4.4$ git log --graph * commit 47905bcb80be6f7cb3030513986fad4df548f812 (HEAD -> master) |\ Merge: 7fad4be 783c6d5 | | Author: user <___@_______> | | Date: Thu Nov 1 20:20:20 2018 +0300 | | | | Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d | | git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: master | | | * commit 783c6d5af1100e9665f930c818c861ff011bed19 | Author: user <___@_______> | Date: Thu Nov 1 20:16:33 2018 +0300 | | init build-system master 1.0.0 | * commit 7fad4becbd13258216fb95cbe9d987dd33f0be6d (origin/master) Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init platform master 1.0.0 bash-4.4$
ããã§ã¯ã git-subtreeïŒ1ïŒaddã³ãã³ããæ®ã£ãŠãããšããã¡ãã»ãŒãžã«æ³šæããå¿
èŠããããŸãã å®éããã®ã³ãã³ãã䜿çšããŠã ãã©ãããã©ãŒã ãªããžããªã«éããå
¥ããŸããã
bash-4.4$ bash-4.4$ git diff 7fad4becbd13258216fb95cbe9d987dd33f0be6d 47905bcb80be6f7cb3030513986fad4df548f812 diff --git a/build-system/README b/build-system/README new file mode 100644 index 0000000..73a41c7 --- /dev/null +++ b/build-system/README @@ -0,0 +1,3 @@ + +[master] build-system 1.0.0 + bash-4.4$
ããã«ãå€æŽã®å±¥æŽãããå°ãé²ãã ãšãã«ããµãããªãŒã®æ¥ç¶ã®è©³çŽ°ããã詳现ã«æ€èšããå€æŽãã¢ããã¹ããªãŒã ãªããžããªremote / platform.gitã«é
眮ããŸã ã
bash-4.4$ bash-4.4$ git push Enumerating objects: 6, done. Counting objects: 100% (6/6), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 582 bytes | 582.00 KiB/s, done. Total 5 (delta 0), reused 0 (delta 0) To ../../remote/platform.git 7fad4be..47905bc master -> master bash-4.4$
ããäžåºŠgit-subtreeïŒ1ïŒaddã³ãã³ããã¹ããèŠãŠãã ããïŒ
Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' git-subtree-dir: build-system git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 git-subtree-repo: ../../remote/build-system.git/ git-subtree-ref: master
ãããã®ã¡ãã»ãŒãžã¯æçšã§ãããããå¿
èŠã«å¿ããŠãæ¥ç¶å±¥æŽãšãµãããªãŒã®çŸåšã®ç¶æ
ã確èªã§ããŸãã å
ã®git-subtreeïŒ1ïŒã³ãã³ãã¯ãã¡ãã»ãŒãžã®æåŸã®2è¡ãè¿œå ããŸããã ãããžã§ã¯ãã®1ã€ãŸãã¯å¥ã®ãµãããªãŒãäœæããããªã¢ãŒããªããžããªã®ãã©ã³ãããã³ãã©ã³ãã«é¢ããæ
å ±ãç°¡åã«æ€çŽ¢ã§ããããã«ããã®ãŠãŒãã£ãªãã£ããããã«å€æŽããŸããã
次ã®ããã«ããŠãå€æŽã®å®å
šãªå·®åãã¡ã€ã«ãååŸã§ããŸãã
bash-4.4$ bash-4.4$ git clone https://github.com/radix-platform/git.git bash-4.4$ cd git bash-4.4$ git checkout git-subtree-2.19.1 bash-4.4$ git diff v2.19.1 > ../git-subtree-2.19.1.patch bash-4.4$
ãµã³ãã«ãããçŸå®çã«ããã«ã¯ãã¢ããã¹ããªãŒã ãªããžããªremote / build-system.gitã«å€æŽãå ããŸãã
bash-4.4$ bash-4.4$ cd owner/build-system/ bash-4.4$ vim README bash-4.4$ cat README [master] build-system 1.0.1 bash-4.4$
ãããã®å€æŽãä¿åããŸãã
bash-4.4$ bash-4.4$ git add README bash-4.4$ git commit -m "update build-system version to 1.0.1" [master e5c5446] update build-system version to 1.0.1 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
ããããã¢ããã¹ããªãŒã ã®remote / build-system.gitãªããžããªã«æž¡ããŸã ïŒ
bash-4.4$ bash-4.4$ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 274 bytes | 274.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To ../../remote/build-system.git 783c6d5..e5c5446 master -> master bash-4.4$
ãã®ãã ã ãã«ãã·ã¹ãã ãªããžããªã®ãªããžã§ã³ã¯783c6d5ããe5c5446ã«å€æŽãããŸããã
bash-4.4$ bash-4.4$ git log commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 (HEAD -> master, origin/master) Author: user <___@_______> Date: Thu Nov 1 20:26:52 2018 +0300 update build-system version to 1.0.1 commit 783c6d5af1100e9665f930c818c861ff011bed19 Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init build-system master 1.0.0 bash-4.4$
ãã®ç¶æ
ãèŠããŠã remote / platform.gitã³ã³ãããªããžããªã®æäœã«é²ã¿ãŸãã
ã¢ããã¹ããªãŒã ãµãããªãŒãªããžããªããã®å€æŽã®ååŸ
ãµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªã®å€æŽã«ã€ããŠãŸã ç¥ããã ãã©ãããã©ãŒã ã³ãŒãã®æ¹åã«åãçµãã§ãããšããŸãã
bash-4.4$ bash-4.4$ cd owner/platform/ bash-4.4$ vim README bash-4.4$ cat README [master] platform 1.0.1 bash-4.4$ bash-4.4$ git add README bash-4.4$ git commit -m "update platform version to 1.0.1" [master 442c9e9] update platform version to 1.0.1 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$ bash-4.4$ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 306 bytes | 306.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To ../../remote/platform.git 47905bc..442c9e9 master -> master bash-4.4$
äœæ¥ã®çµæã remote / platform.gitãªããžããªã®æ¬¡ã®ã¹ããŒã¿ã¹ãåŸãããŸããã
bash-4.4$ bash-4.4$ git log --graph * commit 442c9e94c9890032fb2f3123661345d465e2849f (HEAD -> master, origin/master) | Author: user <___@_______> | Date: Thu Nov 1 20:41:40 2018 +0300 | | update platform version to 1.0.1 | * commit 47905bcb80be6f7cb3030513986fad4df548f812 |\ Merge: 7fad4be 783c6d5 | | Author: user <___@_______> | | Date: Thu Nov 1 20:20:20 2018 +0300 | | | | Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d | | git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: master | | | * commit 783c6d5af1100e9665f930c818c861ff011bed19 | Author: user <___@_______> | Date: Thu Nov 1 20:16:33 2018 +0300 | | init build-system master 1.0.0 | * commit 7fad4becbd13258216fb95cbe9d987dd33f0be6d Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init platform master 1.0.0 bash-4.4$
ããã§ããããžã§ã¯ãã®ã¡ã€ã³ãªããžããªã®ã³ãŒãã®æ¹åã«åãçµãã§ããéã«ã ãã«ãã·ã¹ãã ãµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªã§äœãèµ·ãã£ãã®ããç¥ã£ãŠãããšããã§ãããã git subtree --listã³ãã³ãã§æåã«ãµãããªãŒãã¹ã¯ããŒã«ããŸãïŒ
bash-4.4$ bash-4.4$ git subtree --list build-system ../../remote/build-system.git/ branch master HEAD bash-4.4$
ãã®ã³ãã³ãã¯ãåçŽãªåœ¢åŒã§ããµãããªãŒãã£ã¬ã¯ããªããµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªã®URLããªã³ã¯ã®çš®é¡ïŒãã©ã³ããŸãã¯ã¿ã°ïŒããªã³ã¯ã®ååãããã³ãµãããªãŒã«ã³ãŒããé
眮ãããªããžããªã®æå®ããããã©ã³ããŸãã¯ã¿ã°ã®ãªããžã§ã³ã衚瀺ããŸãã ãã ãã ãã«ãã·ã¹ãã ãµããããžã§ã¯ãã®éçºãé²ãã§ãããmasterãã©ã³ãã®ããããæãããšã¯ãã¯ãæå¹ã§ã¯ãªãããšãèŠããŠããŸãã ããããããã¯ç§ãã¡ã®ãªããžããªã«ä¿åããããã®ã«é¢ããã¡ãã»ãŒãžã§ãããå®éã®ç¶æ³ã§ã¯ãããŸããã
ãµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªã§ã³ãŒããã©ãã ãé²è¡ãããã調ã¹ãã«ã¯ããµãããªãŒãã¹ã¯ããŒã«ããå¿
èŠããããŸããã -dãªãã·ã§ã³ã䜿çšããŸãã
bash-4.4$ bash-4.4$ git subtree -d --list Looking for externals... Commit: 47905bcb80be6f7cb3030513986fad4df548f812 build-system ../../remote/build-system.git/ branch master HEAD The 'build-system' subtree seems not updated: original revision: 783c6d5af1100e9665f930c818c861ff011bed19 remote revision: e5c5446967599065dc02a269d8fcfc2c1d3c4f65 You can update 'build-system' subtree by following command: git subtree pull --prefix=build-system ../../remote/build-system.git/ master bash-4.4$
çŸåšãåºåã¯ãã¡ã€ã³ãªããžããªã®ã³ãŒãã«åãçµãã§ããéã«ã ãã«ãã·ã¹ãã ãµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªã®ãã¹ã¿ãŒãã©ã³ããå
ã«é²ãã ããšã瀺åããŠããŸãã ããã«ã git subtree -d --listã³ãã³ãã¯ã次ã®ããã«ã¢ããã¹ããªãŒã ãµãããªãŒãªããžããªã«å€æŽãå ããããšãã§ãããšãããã³ããçºè¡ããŸãã ã
bash-4.4$ bash-4.4$ git subtree pull --prefix=build-system ../../remote/build-system.git/ master remote: Enumerating objects: 5, done. remote: Counting objects: 100% (5/5), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From ../../remote/build-system * branch master -> FETCH_HEAD hint: Waiting for your editor to close the file...
ãã®ã³ãã³ãã¯ã -m "commit message"ãæå®ããªãã£ããããã¡ãã»ãŒãžããã¹ãã§ãšãã£ã¿ãŒãéããŸãã
ããŒãžã³ããã 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65'
ïŒã³ãããã¡ãã»ãŒãžãå
¥åããŠããã®ããŒãžãå¿
èŠãªçç±ã説æããŠãã ããã
ïŒç¹ã«ãæŽæ°ãããã¢ããã¹ããªãŒã ããããã¯ãã©ã³ãã«ããŒãžããå Žåã
ïŒ
ïŒãïŒãã§å§ãŸãè¡ã¯ç¡èŠããã空ã®ã¡ãã»ãŒãžã¯äžæ¢ãããŸã
ïŒã³ãããã
ãã®ããã¹ããããæçãªãã®ã«çœ®ãæããŸãã
ã¢ããã¹ããªãŒã build-system.gitãªããžããªã®ãã¹ã¿ãŒããå€æŽããã«ããŸãã
ããŒãžã³ããã 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65'
ãã®ã¡ãã»ãŒãžãä¿åããŠãšãã£ã¿ãŒãéãããšã次ã®åºåãåŸãããŸãã
Merge made by the 'recursive' strategy. build-system/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
ã€ãŸããã¢ããã¹ããªãŒã ãªããžããªremote / build-system.gitã®å€æŽãåãåããã¡ã€ã³ãªããžããªremote / platform.gitã®ããŒã«ã«ã³ããŒã®ãã«ãã·ã¹ãã ãµãããªãŒã«ä¿åããŸããã
ããŒã«ã«ãªããžããªã®ã¹ããŒã¿ã¹ã確èªããŸãã
bash-4.4$ bash-4.4$ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean bash-4.4$
ãããžã§ã¯ãã®ä»ã®ãŠãŒã¶ãŒããããã®å€æŽãååŸã§ããããã«ããã«ã¯ãããããã¢ããã¹ããªãŒã ãªããžããªremote / platform.gitã«é
眮ããå¿
èŠããããŸã ã
bash-4.4$ bash-4.4$ git push Enumerating objects: 9, done. Counting objects: 100% (8/8), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 583 bytes | 583.00 KiB/s, done. Total 5 (delta 0), reused 0 (delta 0) To ../../remote/platform.git 442c9e9..ea52eab master -> master bash-4.4$
ãã©ãããã©ãŒã ãªããžããªã®ããŒã«ã«ã³ããŒã«å«ãŸããŠããå
容ãšã ãªã¢ãŒã/ platform.gitã¢ããã¹ããªãŒã ãªããžããªãèŠãŠã¿ãŸãããã
bash-4.4$ bash-4.4$ git log --graph * commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (HEAD -> master, origin/master) |\ Merge: 442c9e9 e5c5446 | | Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 | | * | commit 47905bcb80be6f7cb3030513986fad4df548f812 |\ \ Merge: 7fad4be 783c6d5 | |/ Author: user <___@_______> | | Date: Thu Nov 1 20:20:20 2018 +0300 | | | | Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d | | git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: master | | | * commit 783c6d5af1100e9665f930c818c861ff011bed19 | Author: user <___@_______> | Date: Thu Nov 1 20:16:33 2018 +0300 | | init build-system master 1.0.0 | * commit 7fad4becbd13258216fb95cbe9d987dd33f0be6d Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init platform master 1.0.0 bash-4.4$
ãã©ãããã©ãŒã ãµãããªãŒãšããŠæ¥ç¶ãããæç¹ã§ã®
remote / build-system.gitãªããžããªã®åæç¶æ
ã¯ã
783c6d5af1100e9665f930c818c861ff011bed19ã§ãã ã ãã ãã
ãã©ãããã©ãŒã ãªããžããªã®ã³ãŒãã®äœæ¥äžã«ããªããžããªã®ç¶æ
ãå€ããã
e5c5446967599065dc02a269d8fcfc2c1d3c4f65ã«çãããªã
ãŸãã ã
ãã«ãã·ã¹ãã ã®åæç¶æ
ïŒ 783c6d5af1100e9665f930c818c861ff011bed19 ïŒã¯ã 442c9e94c9890032fb2f3123661345d465e2849fã®æç¹ã§ãã§ã«ãã©ãããã©ãŒã ãªããžããªã®å±¥æŽã«ãããŸããã ãããã£ãŠã 442c9e94c9890032fb2f3123661345d465e2849fã®ãã©ãããã©ãŒã ç¶æ
ãše5c5446967599065dc02a269d8fcfc2c1d3c4f65ã® ã·ã¹ãã æ§ç¯ç¶æ
ãååŸã ããããã®å·®ãèšç®ãããã®çµæã®å·®ããã¹ã¿ãŒãã©ã³ãã«é©çšããå¿
èŠããããŸãã
ããã¯ãã©ã³ããããŒãžããæšæºæäœã§ããããã®æ¬è³ªã¯æ¬¡ã®ããã«è¡šçŸã§ããŸãã
p[n] = p[n-1] + diff(p[n-1], b[n])
ã©ãã§
p[n] = ea52eabd5910159efabd80adcf522f22bf6a2af2, p[n-1] = 442c9e94c9890032fb2f3123661345d465e2849f, b[n] = e5c5446967599065dc02a269d8fcfc2c1d3c4f65.
ããã§ã pã¯ãã¹ã¿ãŒãã©ã³ããšããŠæ©èœãã b㯠ãæ°ããæ©èœãäœæããããã«ä»¥åã«ãã¹ã¿ãŒããåé¢ããããã©ã³ãã®åœ¹å²ãæãããŸãã
åã³git-subtreeïŒ1ïŒãŠãŒãã£ãªãã£ãgit-subtree-pullã³ãã³ãã®å®è¡äžã«æºåããŠãããã¡ãã»ãŒãžãèããŠã¿ãŸãããïŒ
git subtree pull --prefix=build-system ../../remote/build-system.git/ master
ããŒãžã³ããã 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65'
ïŒã³ãããã¡ãã»ãŒãžãå
¥åããŠããã®ããŒãžãå¿
èŠãªçç±ã説æããŠãã ããã
ïŒç¹ã«ãæŽæ°ãããã¢ããã¹ããªãŒã ããããã¯ãã©ã³ãã«ããŒãžããå Žåã
ïŒ
ïŒãïŒãã§å§ãŸãè¡ã¯ç¡èŠããã空ã®ã¡ãã»ãŒãžã¯äžæ¢ãããŸã
ïŒã³ãããã
ãã®ã¡ãã»ãŒãžã«ã¯ãç§ãã¡ã«ãšã£ãŠéèŠãªæ
å ±ãã€ãŸãç¶æ
ãå«ãŸããŠããŸã
b[n] = e5c5446967599065dc02a269d8fcfc2c1d3c4f65
ãã©ãããã©ãŒã ãªããžããªã®masterãã©ã³ãã«ã ã¢ããããŒã ã ããåã«ã remote / build-system.gitãªããžããªã®masterãã©ã³ããé
眮ãããŠããŸãã ã
ãã¡ããã git-subtree-pullã³ãã³ããå®è¡ãããšãã«æåã§ã³ãããã¡ãã»ãŒãžãå®è¡ããããšã¯ããŸã䟿å©ã§ã¯ãããŸããããç¶æ
ãæž¡ãå¥ã®æ¹æ³
b[n] = e5c5446967599065dc02a269d8fcfc2c1d3c4f65
ãã®å Žåã git-subtreeïŒ1ïŒãŠãŒãã£ãªãã£ã¯ååšããŸããã
-mã³ã³ãããŒã«ã䜿çšããå Žå
git subtree pill -m "Our own message" ...
ãã®å Žåãç¶æ
b [n]ã®å€ã倱ãããã³ã¡ã³ãã¯æçã§ã¯ãªãããããã£ãŠããŸã£ãã圹ã«ç«ããªããªããŸãã
ãã«ãã·ã¹ãã ãªããžããªã®ãã¹ã¿ãŒãã©ã³ãã®ç¶æ
ã47905bcb80be6f7cb3030513986fad4df548f812ã®å
ã®ããŠã³ããã€ã³ããã移åããåŸ ãæ¥ç¶ããããµãããªãŒã®ãªã¹ãã衚瀺ããŠããéãåžžã«remote / build-system.gitã®å€æŽã®éç¥ãåãåãããšã«æ³šæããŠãã ããã ã€ãŸããã³ãã³ãã§-dãªãã·ã§ã³ã䜿çšããŸãã
git subtree -d --list
åžžã«æ¬¡ã®ãããªã¡ãã»ãŒãžã衚瀺ãããŸãã
bash-4.4$ bash-4.4$ git subtree -d --list Looking for externals... Commit: 47905bcb80be6f7cb3030513986fad4df548f812 build-system ../../remote/build-system.git/ branch master HEAD The 'build-system' subtree seems not updated: original revision: 783c6d5af1100e9665f930c818c861ff011bed19 remote revision: e5c5446967599065dc02a269d8fcfc2c1d3c4f65 You can update 'build-system' subtree by following command: git subtree pull --prefix=build-system ../../remote/build-system.git/ master bash-4.4$
ããã¯ãæ¥ç¶ããããµãããªãŒã«é¢ãããã¹ãŠã®æ
å ±ãã 47905bcb80be6f7cb3030513986fad4df548f812ã³ãããã«äŒŽãã¡ãã»ãŒãžå
ã«ããããã«çºçããŸãã
bash-4.4$ bash-4.4$ git show 47905bcb80be6f7cb3030513986fad4df548f812 commit 47905bcb80be6f7cb3030513986fad4df548f812 Merge: 7fad4be 783c6d5 Author: user <___@_______> Date: Thu Nov 1 20:20:20 2018 +0300 Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' git-subtree-dir: build-system git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 git-subtree-repo: ../../remote/build-system.git/ git-subtree-ref: master diff --cc build-system/README index 0000000,0000000..73a41c7 new file mode 100644 --- /dev/null +++ b/build-system/README @@@ -1,0 -1,0 +1,3 @@@ ++ ++[master] build-system 1.0.0 ++ bash-4.4$
ãã®æ
å ±ã®ãªããžããªã¯ä»ã«ãããŸããã
å¯äžã®ããšã¯ãã³ãã³ããå®è¡ãããšãã«ã ãã©ãããã©ãŒã åŽã§remote / build-system.gitãªããžããªã®masterãã©ã³ããæŽæ°ãããã³ã«ã
git subtree -d --list
æååã®å€ã®ã¿ãå€æŽãããŸã
remote revision: e5c5446967599065dc02a269d8fcfc2c1d3c4f65
ãããŠã ãã«ãã·ã¹ãã ãµãããªãŒã«æ°ããå€æŽãå¿
èŠãã©ããããŸãã¯çŸæç¹ã§ã¯å¿
èŠã§ãªããã©ãããå€æããå¿
èŠããããŸãã
ãã ãã ãªã¢ãŒã/ build-system.gitãªããžããªã«å®éã®å€æŽããªãã£ãå Žåãã³ãã³ãã¯æ¬¡ã®ããã«ãªããããå¿
èŠãªé »åºŠã§pullã³ãã³ããå®è¡ããããšã¯é£ãããããŸããã
git subtree pull --prefix=build-system ../../remote/build-system.git/ master
é©åãªã¡ãã»ãŒãžã衚瀺ãããŸãïŒ
bash-4.4$ bash-4.4$ git subtree pull --prefix=build-system ../../remote/build-system.git/ master From ../../remote/build-system * branch master -> FETCH_HEAD Already up to date. bash-4.4$
ãŠãŒã¶ãŒã«ããã³ãŒãã®ååŸ
ããã§ãã¢ããã¹ããªãŒã ãªããžããªremote / platform.gitã®ãã¹ãŠã®ãŠãŒã¶ãŒã¯ãåäžã®git-pullïŒ1ïŒã³ãã³ãã§å®å
šã«æ§æããããœãŒã¹ããªãŒãååŸã§ããŸãã
bash-4.4$ bash-4.4$ cd user/platform/ bash-4.4$ bash-4.4$ git pull remote: Enumerating objects: 15, done. remote: Counting objects: 100% (15/15), done. remote: Compressing objects: 100% (8/8), done. remote: Total 13 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (13/13), done. From ../../remote/platform 7fad4be..ea52eab master -> origin/master Updating 7fad4be..ea52eab Fast-forward README | 2 +- build-system/README | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 build-system/README bash-4.4$
ããã«ããŠãŒã¶ãŒã¯ãããžã§ã¯ãã®ã¡ã€ã³ãªããžããªã ãã§ãªãããã®ãã¹ãŠã®ãµãããªãŒã®éçºå±¥æŽã远跡ã§ããŸãã
bash-4.4$ bash-4.4$ git log -3 --graph * commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (HEAD -> master, origin/master, origin/HEAD) |\ Merge: 442c9e9 e5c5446 | | Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 bash-4.4$
ãµãããªãŒã®å€æŽãã¢ããã¹ããªãŒã ãªããžããªã«é
ä¿¡ãã
ãã¡ã€ã«ã®ç¶æ
ãšãã©ãããã©ãŒã ãªããžããªèªäœãèŠããŠãããŠãã ããã
bash-4.4$ bash-4.4$ git log -3 --graph * commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (HEAD -> master, origin/master, origin/HEAD) |\ Merge: 442c9e9 e5c5446 | | Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 bash-4.4$
ãã«ãã·ã¹ãã ãµãããªãŒã«å€æŽãå ããŸãã ãããè¡ãã«ã¯ã ãã©ãããã©ãŒã / build-system / READMEãã¡ã€ã«ãç·šéããŸã ã
bash-4.4$ bash-4.4$ cd owner/platform/ bash-4.4$ bash-4.4$ vim build-system/README bash-4.4$ cat build-system/README [master] build-system 1.0.2 bash-4.4$ bash-4.4$ git add build-system/README bash-4.4$ git commit -m "build-system is updated to version 1.0.2 from platform side" [master abaa2c5] build-system is updated to version 1.0.2 from platform side 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
ãã ãããããã®å€æŽããªãªãžã³/ãã¹ã¿ãŒãã©ãããã©ãŒã ãªããžããªã«èšé²ããŸããã ã€ãŸãã git-pushïŒ1ïŒã³ãã³ãã¯å®è¡ããŸãããã git-subtree-pushãremote / build-system.gitãªããžããªã®ãªãªãžã³ã§çŽæ¥å®è¡ããŸã ã
bash-4.4$ bash-4.4$ git subtree push --prefix=build-system ../../remote/build-system.git/ master git push using: ../../remote/build-system.git/ master Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 290 bytes | 290.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To ../../remote/build-system.git/ e5c5446..0673142 0673142942ccf53514a276e855a98514952bb713 -> master bash-4.4$
ãµãããªãŒãã¹ã¯ããŒã«ããŠãå
ã®remote / build-system.gitãªããžããªã®HEADãã¹ã¿ãŒãã©ã³ããå
ã«é²ãããšã確èªããŸã ã
bash-4.4$ bash-4.4$ git subtree -d --list Looking for externals... Commit: 47905bcb80be6f7cb3030513986fad4df548f812 build-system ../../remote/build-system.git/ branch master HEAD The 'build-system' subtree seems not updated: original revision: 783c6d5af1100e9665f930c818c861ff011bed19 remote revision: 0673142942ccf53514a276e855a98514952bb713 You can update 'build-system' subtree by following command: git subtree pull --prefix=build-system ../../remote/build-system.git/ master bash-4.4$
ããã«ã ãã©ãããã©ãŒã ãªããžããªã®ããŒã«ã«ã³ããŒã®ç¶æ
ãèŠãŠã¿ãŸããããæåŸã®ã³ããããã¢ããã¹ããªãŒã ãªããžããªã§ãŸã èšå®ãããŠããªãããšãæãåºããŠãã ããã
bash-4.4$ bash-4.4$ git log -4 --graph * commit abaa2c5edd49dd0cf395c99877b4711d0170af37 (HEAD -> master) | Author: user <___@_______> | Date: Thu Nov 1 21:48:40 2018 +0300 | | build-system is updated to version 1.0.2 from platform side | * commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (origin/master) |\ Merge: 442c9e9 e5c5446 | | Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 bash-4.4$
ã¡ã€ã³ãããžã§ã¯ãã®ã¢ããã¹ããªãŒã ãªããžããªã«å€æŽãé
ä¿¡ããæ£ããæ¹æ³ã¯ããã¹ãŠã®ãµãããªãŒã®å€æŽãã¡ã€ã³ãªããžããªã«çŽæ¥éãããã®ã§ã¯ãªãããµãããªãŒã®ã¢ããã¹ããªãŒã ãªããžããªããè¡ããã git-subtree-pullã³ãã³ãã䜿çšããŠããããåãåãããã«ããããšã§ãã 次ã«ãã¢ã¯ã·ã§ã³ã®æå³ã説æãããã®åŸã®ãã©ãã«ãåé¿ããããã«ãæåŸã®ã³ãããïŒ abaa2c5edd49dd0cf395c99877b4711d0170af37 ïŒããã©ãããã©ãŒã ãªããžããªã®ããŒã«ã«ã³ããŒã«æ»ããŸãã
bash-4.4$ bash-4.4$ git reset --hard HEAD^ HEAD is now at ea52eab Pull changes from master of upstream build-system.git repository. bash-4.4$
次ã«ãå
ã®ãªã¢ãŒã/ build-system.gitã¢ããã¹ããªãŒã ãªããžããªããåãã³ãããããåé€ãããŸãã ããããæåã«ãæåŸã®ã³ãããabaa2c5edd49dd0cf395c99877b4711d0170af37ãåé€ããããšã確èªããŠãã ãã ïŒ
bash-4.4$ bash-4.4$ git log -3 --graph * commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (HEAD -> master, origin/master) |\ Merge: 442c9e9 e5c5446 | | Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 bash-4.4$
ã¯ãã以åã®ç¶æ
ea52eabd5910159efabd80adcf522f22bf6a2af2ã«å®éã«æ»ããå
ã®remote / build-system.gitãªããžããªã«æè¿éä¿¡ããå€æŽãåãæ»ãããšãã§ããŸã ã ãããè¡ãã«ã¯ãéåžžã©ããã git-subtree-pullã³ãã³ããå®è¡ããå¿
èŠããããŸãã
bash-4.4$ bash-4.4$ git subtree pull --prefix=build-system ../../remote/build-system.git/ master From ../../remote/build-system * branch master -> FETCH_HEAD hint: Waiting for your editor to close the file...
次ã«ãã³ãããã¡ãã»ãŒãžãç·šéããããã«æ±ããããŸãã
ããŒãžã³ããã '0673142942ccf53514a276e855a98514952bb713'
ïŒã³ãããã¡ãã»ãŒãžãå
¥åããŠããã®ããŒãžãå¿
èŠãªçç±ã説æããŠãã ããã
ïŒç¹ã«ãæŽæ°ãããã¢ããã¹ããªãŒã ããããã¯ãã©ã³ãã«ããŒãžããå Žåã
ïŒ
ïŒãïŒãã§å§ãŸãè¡ã¯ç¡èŠããã空ã®ã¡ãã»ãŒãžã¯äžæ¢ãããŸã
ïŒã³ãããã
ããã«çœ®ãæããŸãïŒ
ãªãªãžã³ã®ãã¹ã¿ãŒãªã¢ãŒã/ãã«ãã·ã¹ãã ãªããžããªããå€æŽããã«ããŸãã
ããŒãžã³ããã '0673142942ccf53514a276e855a98514952bb713'
ãããŠæåŸã«ãåã®çµè«ã®ç¶ããšããŠã次ã®ãã®ãååŸããŸãã
Merge made by the 'recursive' strategy. build-system/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
ããã§éåžžã®å±¥æŽãåŸãããããã«éèŠãªããšãšããŠããããžã§ã¯ãéçºã®å°æ¥ã®æ®µéã§ã remote / build-system.gitããã®å€æŽã®éèŠãªããŒãžãåé¿ããŸããã ããã¯ãããŒã«ã«ãã©ãããã©ãŒã ãªããžããªã®ãã«ãã·ã¹ãã ãµãããªãŒã«å€æŽãæ®ãããå
ã®remote / build-system.gitãªããžããªãä»ããŠãããã転éããããšã§å€æŽãåä¿¡ããããã«çºçããŸãã ã
bash-4.4$ bash-4.4$ git log --graph * commit 04a13bac91d1c445994ffc19db8b479d5e644e17 (HEAD -> master) |\ Merge: ea52eab 0673142 | | Author: user <___@_______> | | Date: Thu Nov 1 21:59:45 2018 +0300 | | | | Pull changes from master of origin remote/build-system repository. | | | | Merge commit '0673142942ccf53514a276e855a98514952bb713' | | | * commit 0673142942ccf53514a276e855a98514952bb713 | | Author: user <___@_______> | | Date: Thu Nov 1 21:48:40 2018 +0300 | | | | build-system is updated to version 1.0.2 from platform side | | * | commit ea52eabd5910159efabd80adcf522f22bf6a2af2 (origin/master) |\ \ Merge: 442c9e9 e5c5446 | |/ Author: user <___@_______> | | Date: Thu Nov 1 20:48:05 2018 +0300 | | | | Pull changes from master of upstream build-system.git repository. | | | | Merge commit 'e5c5446967599065dc02a269d8fcfc2c1d3c4f65' | | | * commit e5c5446967599065dc02a269d8fcfc2c1d3c4f65 | | Author: user <___@_______> | | Date: Thu Nov 1 20:26:52 2018 +0300 | | | | update build-system version to 1.0.1 | | * | commit 442c9e94c9890032fb2f3123661345d465e2849f | | Author: user <___@_______> | | Date: Thu Nov 1 20:41:40 2018 +0300 | | | | update platform version to 1.0.1 | | * | commit 47905bcb80be6f7cb3030513986fad4df548f812 |\ \ Merge: 7fad4be 783c6d5 | |/ Author: user <___@_______> | | Date: Thu Nov 1 20:20:20 2018 +0300 | | | | Add 'build-system/' from commit '783c6d5af1100e9665f930c818c861ff011bed19' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7fad4becbd13258216fb95cbe9d987dd33f0be6d | | git-subtree-split: 783c6d5af1100e9665f930c818c861ff011bed19 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: master | | | * commit 783c6d5af1100e9665f930c818c861ff011bed19 | Author: user <___@_______> | Date: Thu Nov 1 20:16:33 2018 +0300 | | init build-system master 1.0.0 | * commit 7fad4becbd13258216fb95cbe9d987dd33f0be6d Author: user <___@_______> Date: Thu Nov 1 20:16:33 2018 +0300 init platform master 1.0.0 bash-4.4$
, , upstream- remote/platform.git .
bash-4.4$ bash-4.4$ git status On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean bash-4.4$ bash-4.4$ git push Enumerating objects: 9, done. Counting objects: 100% (8/8), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 600 bytes | 600.00 KiB/s, done. Total 5 (delta 0), reused 0 (delta 0) To ../../remote/platform.git ea52eab..04a13ba master -> master bash-4.4$
, git-subtree-pull , . , git-push(1) , , , .
, upstream- remote/platform.git 04a13bac91d1c445994ffc19db8b479d5e644e17 , remote/build-system.git , , git-subtree-pull , upstream- remote/platform.git , upstream- remote/platform.git (owner/platform).
git-format-patch
, , git-subtre ,
:
git log -- . ":(exclude)build-system" git log -- build-system
, , .
git-format-patch .
, , patch- ea52eabd5910159efabd80adcf522f22bf6a2af2 , git-format-patch :
bash-4.4$ bash-4.4$ git format-patch ea52eabd5910159efabd80adcf522f22bf6a2af2 --stdout From 0673142942ccf53514a276e855a98514952bb713 Mon Sep 17 00:00:00 2001 From: user <___@_______> Date: Thu, 1 Nov 2018 21:48:40 +0300 Subject: [PATCH] build-system is updated to version 1.0.2 from platform side --- README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README b/README index 629b3f4..4fbbbaf 100644 --- a/README +++ b/README @@ -1,3 +1,3 @@ -[master] build-system 1.0.1 +[master] build-system 1.0.2 -- 2.19.1 bash-4.4$
, build-system/README build-system/, :
--- a/README +++ b/README
,
git-diff :
bash-4.4$ bash-4.4$ git diff ea52eabd5910159efabd80adcf522f22bf6a2af2 04a13bac91d1c445994ffc19db8b479d5e644e17 diff --git a/build-system/README b/build-system/README index 629b3f4..4fbbbaf 100644 --- a/build-system/README +++ b/build-system/README @@ -1,3 +1,3 @@ -[master] build-system 1.0.1 +[master] build-system 1.0.2 bash-4.4$
patch-:
--- a/build-system/README +++ b/build-system/README
git-diff(1) , , , platform .
CM- , . , , :
, .
, , upstream- remote/build-system.git :
bash-4.4$ bash-4.4$ cd owner/build-system/ bash-4.4$ cat README [master] build-system 1.0.2 bash-4.4$
, upstream- remote/build-system.git , , , minor 1.0.2 . build-system-1.1.x , , : 1.1.0 , 1.1.1 , 1.1.2 , .
:
bash-4.4$ bash-4.4$ git checkout -b build-system-1.1.x Switched to a new branch 'build-system-1.1.x' bash-4.4$ git branch * build-system-1.1.x master bash-4.4$
, README 1.1.0 :
bash-4.4$ bash-4.4$ vim README bash-4.4$ cat README [master] build-system 1.1.0 bash-4.4$ bash-4.4$ git commit -a -m "Move on to developing 1.1.x functionality" [build-system-1.1.x f6d79c1] Move on to developing 1.1.x functionality 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
upstream- remote/build-system.git :
bash-4.4$ bash-4.4$ git push --set-upstream origin build-system-1.1.x Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 280 bytes | 280.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To ../../remote/build-system.git * [new branch] build-system-1.1.x -> build-system-1.1.x Branch 'build-system-1.1.x' set up to track remote branch 'build-system-1.1.x' from 'origin'. bash-4.4$
, , , 1.1.1 :
bash-4.4$ bash-4.4$ vim README bash-4.4$ cat README [master] build-system 1.1.1 bash-4.4$ bash-4.4$ git commit -a -m "Update build-system version to 1.1.1" [build-system-1.1.x f9544a4] Update build-system version to 1.1.1 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$ bash-4.4$ git push Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 276 bytes | 276.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To ../../remote/build-system.git f6d79c1..f9544a4 build-system-1.1.x -> build-system-1.1.x bash-4.4$
:
bash-4.4$ bash-4.4$ git tag -a 1.1.1 -m "Created tag for release (version 1.1.1)" bash-4.4$ git push origin 1.1.1 Enumerating objects: 1, done. Counting objects: 100% (1/1), done. Writing objects: 100% (1/1), 170 bytes | 170.00 KiB/s, done. Total 1 (delta 0), reused 0 (delta 0) To ../../remote/build-system.git * [new tag] 1.1.1 -> 1.1.1 bash-4.4$
upstream- remote/build-system.git :
bash-4.4$ bash-4.4$ cd remote/build-system.git/ bash-4.4$ tree refs refs âââ heads â âââ build-system-1.1.x â âââ master âââ tags âââ 1.1.1 2 directories, 3 files bash-4.4$
, platform build-system . , , , , platform-1.0.2 :
bash-4.4$ bash-4.4$ cd user/platform/ bash-4.4$ git branch * master bash-4.4$ git pull Already up to date. bash-4.4$ bash-4.4$ git checkout -b platform-1.0.2 Switched to a new branch 'platform-1.0.2' bash-4.4$ vim README bash-4.4$ cat README [master] platform 1.0.2 bash-4.4$ git commit -a -m "reated platform-1.0.2 branch for the transition to the system 1.1.1" [platform-1.0.2 00a1250] reated platform-1.0.2 branch for the transition to the system 1.1.1 1 file changed, 1 insertion(+), 1 deletion(-) bash-4.4$
, , - remote/build-system.git , 1.1.1 :
bash-4.4$ bash-4.4$ git rm -rf build-system/ rm 'build-system/README' bash-4.4$ git commit -a -m "Removed subtre based on build-system/master" [platform-1.0.2 7db0f54] Removed subtre based on build-system/master 1 file changed, 3 deletions(-) delete mode 100644 build-system/README bash-4.4$ bash-4.4$ bash-4.4$ git push --set-upstream origin platform-1.0.2 Enumerating objects: 7, done. Counting objects: 100% (7/7), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 550 bytes | 550.00 KiB/s, done. Total 5 (delta 0), reused 0 (delta 0) To ../../remote/platform.git/ * [new branch] platform-1.0.2 -> platform-1.0.2 Branch 'platform-1.0.2' set up to track remote branch 'platform-1.0.2' from 'origin'. bash-4.4$ bash-4.4$ bash-4.4$ git subtree add --prefix=build-system ../../remote/build-system.git/ 1.1.1 git fetch ../../remote/build-system.git/ 1.1.1 remote: Enumerating objects: 9, done. remote: Counting objects: 100% (9/9), done. remote: Compressing objects: 100% (3/3), done. remote: Total 7 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (7/7), done. From ../../remote/build-system * tag 1.1.1 -> FETCH_HEAD Added dir 'build-system' bash-4.4$
build-system upstream- remote/platform.git :
bash-4.4$ bash-4.4$ git push Enumerating objects: 12, done. Counting objects: 100% (12/12), done. Delta compression using up to 4 threads Compressing objects: 100% (4/4), done. Writing objects: 100% (8/8), 889 bytes | 889.00 KiB/s, done. Total 8 (delta 0), reused 0 (delta 0) To ../../remote/platform.git/ 7db0f54..6f1a50e platform-1.0.2 -> platform-1.0.2 bash-4.4$
:
bash-4.4$ bash-4.4$ git log -3 --graph * commit 6f1a50e249e01f69c54f343b65747d28abc6456d (HEAD -> platform-1.0.2, origin/platform-1.0.2) |\ Merge: 7db0f54 f9544a4 | | Author: user <___@_______> | | Date: Fri Nov 2 18:24:54 2018 +0300 | | | | Add 'build-system/' from commit 'f045926542e9f685034545a45317093383fddf99' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7db0f5452e67086dc4e381a0ccb14f25d48ecf0b | | git-subtree-split: f045926542e9f685034545a45317093383fddf99 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: 1.1.1 | | | * commit f9544a4cc2650a83b96f400fdfc95ba64a38ec6e | | Author: user <___@_______> | | Date: Fri Nov 2 17:59:43 2018 +0300 | | | | Update build-system version to 1.1.1 | | | * commit f6d79c12ada29438454739fe6f6db9592d413be2 | | Author: user <___@_______> | | Date: Fri Nov 2 17:54:35 2018 +0300 | | | | Move on to developing 1.1.x functionality bash-4.4$
, CM- , platform , platform-1.0.2 build-system . , , build-system , .
, upstream- build-system platform , pre-receive
remote/build-system.git/hooks/pre-receive
, , :
. , , , , , , . , , :
git subtree push --prefix=<subdir> <remote> <ref>
<ref> , <subdir> , , (refs/tags/1.1.1), (1.1.1) upstream- ( : refs/heads/1.1.1).
, git-subtree(1) . .
, pre-receive , user/platform/build-system/README:
bash-4.4$ bash-4.4$ cd user/platform/ bash-4.4$ vim build-system/README bash-4.4$ cat build-system/README [master] build-system 1.1.1 Try to change. bash-4.4$ bash-4.4$ git commit -a -m "Try to change the tag of build-system" [platform-1.0.2 34e7970] Try to change the tag of build-system 1 file changed, 2 insertions(+) bash-4.4$
upstream- remote/build-system.git .
...ã¢ããã¹ããªãŒã ãªããžããªã®ãªããžã§ã³ãžã®ãªã³ã¯ã¯ãã³ãã³ãã®å¿
é ãã©ã¡ãŒã¿ãŒã§ã
git subtree push --prefix=<subdir> <remote> <ref>
ãããã£ãŠããµãããªãŒãã©ã®ããã«æ¥ç¶ããããæãåºãããã«ã次ã®ã³ãã³ãã䜿çšããŠãªã³ã¯ã®ååãæ確ã«ããå¿
èŠããããŸãã
bash-4.4$ git subtree -d --list Looking for externals... Commit: 6f1a50e249e01f69c54f343b65747d28abc6456d build-system ../../remote/build-system.git/ tag 1.1.1 f045926542e9f685034545a45317093383fddf99 bash-4.4$
ãã®ãããã¿ã°åãèŠããŠãæçµçã«ã¢ããã¹ããªãŒã ã®remote / build-system.gitãªããžããªã«å€æŽãé
ä¿¡ã§ããŸãã
bash-4.4$ bash-4.4$ git subtree push --prefix=build-system ../../remote/build-system.git/ 1.1.1 git push using: ../../remote/build-system.git/ 1.1.1 Enumerating objects: 5, done. Counting objects: 100% (5/5), done. Writing objects: 100% (3/3), 293 bytes | 293.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: remote: ERROR: Trying to change TAG named as 'refs/tags/1.1.1'. remote: To ../../remote/build-system.git/ ! [remote rejected] c3a7333aaa818a7d7a0d501d4b69db1c6a01d40f -> 1.1.1 (pre-receive hook declined) error: failed to push some refs to '../../remote/build-system.git/' bash-4.4$
, , pre-receive , . :
remote: remote: ERROR: Trying to change TAG named as 'refs/tags/1.1.1'. remote:
, , , , :
bash-4.4$ bash-4.4$ git reset --hard HEAD^ HEAD is now at 6f1a50e Add 'build-system/' from commit 'f045926542e9f685034545a45317093383fddf99' bash-4.4$
, , platform-1.0.2 :
bash-4.4$ bash-4.4$ git log -3 --graph * commit 6f1a50e249e01f69c54f343b65747d28abc6456d (HEAD -> platform-1.0.2, origin/platform-1.0.2) |\ Merge: 7db0f54 f9544a4 | | Author: user <___@_______> | | Date: Fri Nov 2 18:24:54 2018 +0300 | | | | Add 'build-system/' from commit 'f045926542e9f685034545a45317093383fddf99' | | | | git-subtree-dir: build-system | | git-subtree-mainline: 7db0f5452e67086dc4e381a0ccb14f25d48ecf0b | | git-subtree-split: f045926542e9f685034545a45317093383fddf99 | | git-subtree-repo: ../../remote/build-system.git/ | | git-subtree-ref: 1.1.1 | | | * commit f9544a4cc2650a83b96f400fdfc95ba64a38ec6e | | Author: user <___@_______> | | Date: Fri Nov 2 17:59:43 2018 +0300 | | | | Update build-system version to 1.1.1 | | | * commit f6d79c12ada29438454739fe6f6db9592d413be2 | | Author: user <___@_______> | | Date: Fri Nov 2 17:54:35 2018 +0300 | | | | Move on to developing 1.1.x functionality bash-4.4$
git-subrepo , , squashed-, git-subtree(1) , .
, . git-subrepo . , git-subtree , , Git , , , Git .
æåŠïŒ