Mercurial 3.6 Sprint åæ¦ã¡ã¢
ã¡ãã£ã¨Facebook Londonã¾ã§è¡ã£ã¦ãªãã©ã¤ã³ãã¼ãã£ã³ã°ã«åå ãã¦ãã¾ããã
Mercurial Sprint
åæ£ãã¼ã¸ã§ã³ç®¡çã·ã¹ãã Mercuiralã®åå¹´ã«ä¸åº¦ãã¼ã¹ã§å®æ½ããããªãã©ã¤ã³ãã¼ãã£ã³ã°ã§ãã å ¬å¼Wikiã®ãã¼ãã£ã³ã°ä¸è¦§ãè¦ãã¨ããã10å以ä¸éå¬ããã¦ããç±ç·ããä¼ã§ãã
ä»åã¯ã¤ã®ãªã¹ Facebook LondonãSprintä¼å ´*1ã§ãæéã¯10/23ãã10/25ã¾ã§ã®ä¸æ¥éãå ¨ä¸ç*2ããMercurialã®ã³ããã¿ã¼ãã³ã³ããªãã¥ã¼ã¿ãéã¾ã£ã¦æ°æ©è½ã®ãã£ã¹ã«ãã·ã§ã³ãªã©ãè¡ãã¾ãã
åå ã®çµç·¯
è¤åãã*3ã«
é½åãè¯ããã°é£¯éãããä¸ç·ã«åå ãã¾ãããï¼
ã¨ã¡ã¼ã«ã§èªãããã®ããã£ããã§ããããã9/17ã®æãéå¬ã¾ã§ä¸ã¶æããã®æç¹ã§åã¯ãã¹ãã¼ããæã£ã¦ãã¾ããã§ããã
Sprintæéä¸
åæ¥ã ãèªå·±ç´¹ä»ãã¦ã以éã¯äºåã«å ¬å¼Wikiã«ä¹ãã¦ããProposal*4ã温ãã¦ãããææ¡ããã¼ã¹ã«ãããããã£ã¹ã«ãã·ã§ã³ãã¦ãã¾ããããã¼ãã£ã³ã°ã¹ãã¼ã¹ãããããããã®ã§ãè¾¼ã¿å ¥ã£ã話é¡ã®å ´åã¯å®è£ ã«è©³ããé¢ä¿è ãéãã¦å¥å®¤ã§ãã¨ããæãããã¨ã¯åèªããããã¨ä½æ¥ã§ãããã£ã¹ã«ãã·ã§ã³ã®å 容ã¯titanpad.comã§å ±æ*5ãã¦ãã¾ããã
è¼ãããããã¤ã ã¨ãããªã®ã¨ãããããªã®ãããã¾ãã
- Working Copy Sync notes - Google ドキュメント
- TopicPlan - Mercurial
- DefaultDestinationPlan - Mercurial
- ChgPortingPlan - Mercurial
ãã®ã»ãã¯ãããªè©±é¡ãä¸ãã£ã¦ãã¾ããã
- pypy support
- in memory merge
- revsetã®ç¸å¯¾ãªãã¸ã§ã³è¨æ³ã®ææ¡
å½ããåã ãã©è±èªã§ããã¨ããã¦ããã®ã§ãé£ãã話é¡ãç¸ã¾ã£ã¦åã®è±èªåã§ã¯å ¨ç¶ç解ã§ãã¾ããã§ããããã
åã¯Kallitheaã«ããããéã£ããä¹ ãã¶ãã«i18nãã¡ã¤ã«ã®ã¡ã³ããã³ã¹ããããMads*6ã¨è©±ããããã¾ãããæè¿ãããéã£ã¦ãªãã£ãã¿ããã ãã©ãªãã§ï¼ã£ã¦èããã¦ç¦ããªã©ãã¦ã¾ãããã
Sprintæéä¸ã®ããã
ã¡ã¤ã³ã®ä¼å ´ã«ãããããã¤ã®ãªã¹ã®ããããç¨æãã¦ããã¾ããããã以å¤ãFacebook Londonã®ãªãã£ã¹å ã«ããä¼æ©ã¹ãã¼ã¹ããåæã«ãèåã飲ã¿ç©*7ãã¨ã£ã¦ãã£ããã100ä¸åããããããããå ¨ãé³ã®ããªãéé³ã¨ã¹ãã¬ãã½ãã·ã³ã§ã¨ã¹ãã¬ãã½ãä½ã£ã¦éãã§ãããã¦ã¾ããã
æ¥æ¬ããã¯ç¾½ç°ç©ºæ¸¯ã§è²·ã£ãå®æ²»æ¹è¶å³ã¨ããã³å³ã®ãããã«ãããæã£ã¦ããã¾ãããæ¹è¶å³ã®æ¹ã¯å³ããããã³å³ã¯å¤ãªå³ã ãã©ãã£ã¬ã³ã¸ã£ã¼åãã£ã¦ã®ãåããã®ãçµæ§å¥½è©ã§ããã
Sprintæéä¸ã®é£¯
åæ¥ã¯å¹³æ¥ã ã£ãã®ã§æ¼ãå¤ã¯Facebook Londonã®ç¤¾å¡ã¨æ··ãã£ã¦ç¤¾é£ã§ã飯*8ã äºæ¥ç®ãä¸æ¥ç®ã¯è¿ãã®ã¬ã¹ãã©ã³ã«ç§»åãã¦ã¯ã¤ã¯ã¤å®´ä¼ããã¦ãã¾ããã
ç¹ã«æçµæ¥ã¯è¬æ¥æ¬æçãã¼ã¯ã¡ãã¥ã¼ãgindara no saikyo yakiã¿ãããªãã¼ãå表è¨*9ã¨ããªã®ã§ãããã¾ããããããæµãã§æ¥æ¬äººã®åããæçã®æ³¨æãåãä»åããã¨ã«ããã£ã¡ãç·å¼µ&åç*10ãã¾ããã
以ä¸æ è¡ã®ã¡ã¢
åãã¦ã®æµ·å¤æ è¡ãä¸äººã§æ å¸ã¨ã£ã¦ãããã«äºç´ãã¦ãã§ãã¯ã¤ã³ãã¦ãé»è»ããã¹ã§ç§»åããã®ã¯ããçµé¨ã§ããã
äºåã«è¤åããã西åããã¨æ¥ç¨ã宿ã®æ å ±ãæµ·å¤æ è¡å¿ éåã®æ å ±ãå ±æãããããã³ãã³ã«é·ææ»å¨çµé¨ã®ããä¸å¸ãååã«ç¾å°æ å ±ãæµ·å¤æ è¡tipãããã£ãã®ã§é常ã«å©ããã¾ããã
ã¿ã¹ã¯ç®¡ç
trelloãã¤ãã£ã¦ã¿ã¹ã¯ç®¡çãã¾ããã
ç¨æãããã®
- ãã¹ãã¼ãã ä»ã¯ç³è«ãã7å¶æ¥æ¥ãããã§åå¾ã§ããã¿ããã§ããé½å ã«ä½æ°ç¥¨ããã人ãé½å ã§ç³è«ããå ´åã¯æ¸ç±è¬æ¬ã ãã§OKã§ä½æ°ç¥¨ã¯ä¸è¦ã§ããã
- æ å¸ã ãããã調ã¹ãã®ã§ããDeNAãã©ãã«ã§åãã¾ãããæ è¡ä¿éºãä¸ç·ã«ãBritish Airwaysã®ç´é便ã§è¡ãã¾ããã
- 宿ã Booking.comã§äºç´ãã¦ãã§ãã¯ã¤ã³æã«ã«ã¼ã決æ¸ãã¾ãããããã«ã®åä»ã§ããããã§ããã£ã¦ã¹ããã©ç»é¢ãè¦ãããOKã§ç°¡åã§ããã
- ãªã¤ã¹ã¿ã¼ã«ã¼ãã ãã³ãã³ã®Suicaã§ããå°ä¸éããã¹ã«ä¹ãã¾ããç¾å°ã§ãå°ä¸éã«ãã端æ«ã§è²·ããã®ã§ããäºåã«ãã¸ã¿ã¼ç¨ã®ã«ã©ãã«ãªæãã®ã確ä¿ãã¾ããã æ è¡ä¸ã«ç¡ããã¦ç¾å°åãã®å°å³ãªãã¤ãè²·ããªããã¾ãããã
- æµ·å¤æ è¡ç¨ã¯ã¬ã¸ããã«ã¼ãã ã¹ããã³ã°ã¨ãæãã®ã§ã¡ã¤ã³ã§ä½¿ã£ã¦ãã¯ã¬ã¸ããã«ã¼ãã¨ã¯å¥ã«ç¨æãã¾ãããè¤åããã®èå¯ãèããçµæãããã«ã¼ããç¨æãã¾ããã
- ç¾å°ããã¼ã æ¥æ¬ã®ç©ºæ¸¯ã§å°ãç¨æãã¦ãæ®ãã¯ç¾å°ã§ãããã¦ç¨æãã¾ãããã¯ã¬ã¸ãã決æ¸ã§ããã®ã§ãããç¾å°ã®ãéã§è²·ãç©ãããã£ãã®ã§å¤ãã«*11ãããã¾ããã
- é»è©±ã iphoneãæµ·å¤ã§ãå©ç¨ã§ããã®ã§ç¹ã«ç¾å°ç¨ã®ãã®ã¯ç¨æãã¾ããã§ãããSIMããªã¼ã®ç«¯æ«ããããªãç¾å°ã§SIMãè²·ãã¨è¯ãã¨æãã¾ãã
- wifiã ããã«ãSprintä¼å ´ã§ã¯Wifiãããã¾ããã観å ä¸ã¯ä½¿ããªãã®ã§wifiåãã¾ããããªãã¨ãªãtownwifiã®ãã¤ãåãã¾ããã
- å¤å§å¨ãã¢ããã¿ã¼ã ãªãã¨ãªãç¨æãããã©ãMBAã®é»æºã¯åªç§ãªã®ã§ãã©ã°ã®å¤æã¢ããã¿ã¼ã ãããã°OKã§ãããUSBã§ã®å é»ã¯MBAçµç±ã§ã§ãããã
- å°çã®æ©ãæ¹ãã³ãã³ç·¨ã æ°åãé«ããããã«&観å å°èª¿ã¹ã®ããã«ã
æ ã®ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã«
ãããªæããä¸ã¶æåã«ãã¹ãã¼ããªãã¦ãæµ·å¤æ è¡ã§ãã¾ããã
- 9/17 èªããåãããå 輩社å¡ã«ç¸è«
- 9/18 æ¸ç±è¬æ¬ç¢ºä¿ï¼è¦ªã«é ¼ãã ï¼
- 9/24 ãã¹ãã¼ã(a)ç³è«ãå°çã®æ©ãæ¹ãã³ãã³ç·¨è³¼å ¥
- 10/03 (a)åå¾
- 10/06 æ給調æ´ãæ å¸è³¼å ¥ã宿äºç´
- 10/07 ãªã¤ã¹ã¿ã¼ã«ã¼ã(b)ç³ãè¾¼ã¿
- 10/10 æµ·å¤æ è¡ç¨ã¯ã¬ã¸ããã«ã¼ã(c)ç³è«
- 10/12 (b)確ä¿
- 10/17 (c)確ä¿
- 10/20 ç«ãããã家ã«é ãã
- 10/22 æ¥æ¬æéæåºçº
- 10/23-10/25 Sprint
- 10/26-10/27 観å
- 10/28 ç¾å°æéæåºçº
- 10/29 æ¥æ¬æéæçããã®ã¾ã¾åºç¤¾
*1:ã¡ãªã¿ã«åã åã¯ãã¤ã Google Munichãååã¯ã¢ã¡ãªã«ã§ PyCon 2015 Montrealã«ä½µè¨ã§éå¬ããã¾ããã
*2:ã£ã¦ãã£ã¦ãåç±³ãã¨ã¼ããããã¡ã¤ã³ã£ã½ãã§ã
*3:Mercurialã®ã³ã³ããªãã¥ã¼ã¿ããã©ã³ã¶ã¯ã·ã§ã³å¨ããvirtual file systemï¼ãã¡ã¤ã«ã·ã¹ãã ã®æ½è±¡å層ï¼ãªã©ãå¾æ
*4:WIkiã«ããHogeHogePlanã¨ãããã¼ã¸ãããã§ãã
*5:URLãç´¹ä»ãããã¨æã£ãã®ã§ããã誰ã§ãç·¨éã§ããå ±æãã¼ãã«ãªã£ã¦ãããããªã®ã§ããã¦ããã¾ã
*6:Kallitheaã®ã¡ã¤ã³ã®ã¡ã³ããªã¼
*7:æ°´ãå種ã³ã¼ã©ãã¸ã³ã¸ã£ã¨ã¼ã«ãRedbullããã®ä»ã¤ã®ãªã¹ã®è¬ã¸ã¥ã¼ã¹ãªã©ãªã©
*8:ã¤ã®ãªã¹ã®é£¯ã ãã©Facebookã®é£¯ã¯ããããã£ã
*9:å¥ã®æçã®ååã§ãããåãããªããã ãã©ã£ã¦èãããããããã¯è±èªã ããã£ã¦å¸°ã£ã¦ãã¦ããã¼ãããã§ããããã£ã¦æ°æã¡ã«ãªãã¾ããã
*10:注æå 容ã«ãã¸ã¿ãªã¢ã³ãªäººãã¡ã®é æ ®ã足ããªãã£ãã
*11:ã¨ããã端æ«ã®è¨å®ããã200GBPããããããããªãã£ããã
ISUCON5ã®äºé¸ã«åå ãã¦æ¨æãã¦ãã¾ãã #isucon
ISUCON5ã®äºé¸ã«åå ãã¦æ¨æãã¦ãã¾ããããã¼ã åã¯ãTã»Dã»Uï¼Tã»Dã»Uï¼ãã大å¦ã§åãç 究室ã ã£ãåéãèªã£ã&&ãgoogleã®å¤§å¦åã®æ¤ç´¢çµæããããããªã£ãäºä»¶ãã®ç»åã®ä½æè ããã¼ã ã¡ã¤ãã ã£ãã®ã§ããã®ååã«ãã¦ã¿ã¾ããã
äºåæºå
å以å¤ã®äºäººã¯ååå ã§ãã
äºåã«ä¸åéã¾ã£ã¦ååã®ISUCONäºé¸ã®èª²é¡ã解ããããbitbucketã«ä»åç¨ã®ãªãã¸ããªãä½ã£ã¦wikiã«ç§ä¼ã®ã¿ã¬ãã¾ã¨ããããã¦ã¾ããã
ãã¨ãé£æã®è²·ãåºããªã©ãã
å½æ¥
Skypeã®ãã¤ã¹ãã£ããã§ããã¨ããããªãããªã¢ã¼ãã§ä½æ¥ãã¾ããã
ã³ããããã°ããå½æ¥ã®ã¿ã¤ã ã©ã¤ã³ãä½ã£ã¦ã¿ãã¨ãããªæãã§ããï¼ã¿ããªã®ææã§ããï¼
- ã12:00 ç§ä¼ã®ã¿ã¬ãã¢ããªã«é©ç¨ãã³ã¼ããgitåãã¦æåºç¨ã¤ã³ã¹ã¿ã³ã¹ãä½æ
- ã14:00 ãã°ã¤ã³ã®htmlããã£ãã·ã¥ãã¦ã¿ãããã¤ã³ããã¯ã¹ãè²¼ã£ã¦ã¿ãããã¢ããªã®SQLãä¿®æ£ãã¦ã¿ãã
- ã16:00 '/'ã®N+1ããã£ã¤ããããfriend_mapãæåã«åå¾ãã¦friend_mapãã¤ãã£ã¦is_friendã®ä»£ããã«ãã¦ã¿ãã
- ãã®è¾ºãã§ã¹ã³ã¢ã¯2000ããã
- ã18:00 ããããåå°½ãã¦ã¤ã³ãã©å¨ãã®ãã¥ã¼ãã³ã°
è¨èªã¯rubyã§ãæå¾ã«åã£ãã¹ã³ã¢ã¯5000ç¹ãããã§ããã
è¯ãã£ãç¹
ç§ä¼ã®ã¿ã¬ã§ç¨æããã¿ã¬ã¯ãã³ãã£ãç¶æ ã§ããµã¯ãã¨é©ç¨ã§ãããäºåæºå大äºã
åçç¹
ããããããã®ã§ããã
ãªã¢ã¼ãè¾ã
skypeã®ãã¤ã¹ãã£ããã¨slackã§ã¯ããããæ å ±ã®ããã¨ãã大å¤ãªã®ã§å¯¾é¢ã§ãã£ãã»ããããã§ãã ã¡ãã£ã¨ç»é¢ã¿ã¦ããã¨ãã§ããªãã®ã§ãæ å ±å ±æã®é£ããããã£ããªã¼ã¨ã
å½æ¥æéãæ°ã«ãã¦ãã³ãã
ãã³ããã¾ããã
- ãããã¡ã¤ã«ããããã®gemãå ¥ããã
- ã¢ããªãææ¡ãã¦ãæ´æ°ã®ãããã¼ãã«ããªããã¼ãã«ã確èªããã
- dbã®schemaã¨ãããã¡ã¤ã«çµæãè¦æ¯ã¹ã¦indexãè²¼ã
ã¿ãããªå¿ ãããã¹ããã¨ããã¾ãã§ããªãã£ãã§ããã¡ããã¨ãããã¡ã¤ã«ãã¦ãã®å 容ããä¿®æ£ããããã
ä½æ¥åæ ãã¦ããã¹ãã ã£ã
å¾æä¸å¾æããã®ã§ãäºåã«ä½æ¥åæ ããã¦ããã¹ãã§ããã ä¹ ãã¶ãã«éã¾ã£ãã®ã§ä½æ¥åæ ã§é æ ®ãã¡ããé¨åããã£ããäºäººã§åããã¨ãã£ããã¨ããå¹çæªãã£ãé¨åãã
æå¾ã«
ä»å¹´ãTop20ã«è¼ããã¨ãªãçµããã¾ãã*1ãæ¥å¹´ã¯ä¸ç¬ã§ãè¼ã£ã¦çãä¸ãããããç²¾é²ãããã§ãã
éå¶ãåºé¡ã®ã¿ãªããããã°ãããåé¡ããããã¨ããããã¾ããï¼
*1:å»å¹´ãåå ãã¾ãããããã°ãæ¸ãã¦ãã¾ããããã¿ã¾ãããã
generaldeltaãæå¹ã«ãã¦mercurialã®ãªãã¸ããªãµã¤ãºãæ¸ãã
Mercurialã®ãªãã¸ããªã®å±¥æ´ã®ãã©ã¼ãããã¯é常ã®ãã©ã¼ããã以å¤ã«generaldeltaã¨ãããã®ãæãã¾ãã
ã¨åããã«è¨ã£ã¦ã¿ã¾ããããNetBSDãªãã¸ããªã«é¢ããMLã®ãã¤ã¼ããtwitterã§è¦ã¦åãã¦ç¥ãã¾ããã
NetBSD ã® git/mercurial Repository ä½ããã¨ãã¦ãã人ãããã®ãã
http://t.co/JgAYsvynUu
— å±±æ¬ è (@BsdHacker) April 10, 2014
é常ã®ãã©ã¼ãããã¨æ¯ã¹ãã¨ãªãã¸ããªãµã¤ãºãå°ãããªãããã*1ã®ã§ãpypyã®ãªãã¸ããªã§è©¦ãã¦ã¿ã¾ããã
æå¹ã«ãã
.hgrc
ã«æ¬¡ã®è¨å®ããã¦ãã ããã
[format] generaldelta = true
ã¯ãã¼ã³ãã¦ã¿ã
- generaldeltaãç¡å¹ã«ããå ´åï¼é常ï¼
% time (hg clone -U --config format.generaldelta=0 --pull pypy pypy-non-generaldelta) requesting all changes adding changesets adding manifests adding file changes added 70529 changesets with 223487 changes to 44701 files (+124 heads) ( hg clone -U --config format.generaldelta=0 --pull pypy pypy-non-generaldelt) 152.55s user 19.13s system 61% cpu 4:38.12 total % du -sh pypy-non-generaldelta 617M pypy-non-generaldelta % hg debugrevlog -m -R pypy-non-generaldelta format : 1 flags : (none) revisions : 70061 merges : 4767 ( 6.80%) normal : 65294 (93.20%) revisions : 70061 full : 394 ( 0.56%) deltas : 69667 (99.44%) revision size : 288714045 full : 55492796 (19.22%) deltas : 233221249 (80.78%) avg chain length : 505 compression ratio : 88 uncompressed data size (min/max/avg) : 0 / 916642 / 364444 full revision size (min/max/avg) : 0 / 222686 / 140844 delta size (min/max/avg) : 0 / 217544 / 3347 deltas against prev : 69667 (100.00%) where prev = p1 : 58075 (83.36%) where prev = p2 : 1057 ( 1.52%) other : 10535 (15.12%)
- generaldeltaãæå¹ã«ããå ´å
% time (hg clone -U --config format.generaldelta=1 --pull pypy pypy-generaldelta) requesting all changes adding changesets adding manifests adding file changes added 70529 changesets with 223487 changes to 44701 files (+124 heads) ( hg clone -U --config format.generaldelta=1 --pull pypy pypy-generaldelta; ) 297.99s user 30.27s system 69% cpu 7:53.03 total % du -sh pypy-generaldelta 398M pypy-generaldelta % hg debugrevlog -m -R pypy-generaldelta format : 1 flags : generaldelta revisions : 70061 merges : 4767 ( 6.80%) normal : 65294 (93.20%) revisions : 70061 full : 124 ( 0.18%) deltas : 69937 (99.82%) revision size : 65592031 full : 10731965 (16.36%) deltas : 54860066 (83.64%) avg chain length : 491 compression ratio : 389 uncompressed data size (min/max/avg) : 0 / 916642 / 364444 full revision size (min/max/avg) : 0 / 214457 / 86548 delta size (min/max/avg) : 0 / 217544 / 784 deltas against prev : 58927 (84.26%) where prev = p1 : 58076 (98.56%) where prev = p2 : 90 ( 0.15%) other : 761 ( 1.29%) deltas against p1 : 10881 (15.56%) deltas against p2 : 129 ( 0.18%) deltas against other : 0 ( 0.00%)
ã¡ãªã¿ã«ããªãã¸ããªãgeneraldeltaã§ä¿åããã¦ãããã©ããã¯.hg/requires
ã§ãããã¾ãã
% diff -u pypy-non-generaldelta/.hg/requires pypy-generaldelta/.hg/requires --- pypy-non-generaldelta/.hg/requires 2014-04-10 11:06:25.000000000 +0900 +++ pypy-generaldelta/.hg/requires 2014-04-10 10:56:47.000000000 +0900 @@ -1,4 +1,5 @@ dotencode fncache +generaldelta revlogv1 store
çµæ
generaldelta | enable | disable |
---|---|---|
ãªãã¸ããªãµã¤ãº | 398M | 617M |
é常ãªãã¸ããªããã®cloneã«ãããæé | 7:53.03 | 4:38.12 |
ä»åã®ä¾ã§ã¯ãªãã¸ããªãµã¤ãºã¯40%åæ¸ãé常ãªãã¸ããªããã®cloneã«ãããæéã¯70%å¢å ãã¾ããã
ããããããªãããµã¤ãºã大ããã¦å°ã£ã¦ããå ´åã«å¥¥ã®æã¨ãã¦å©ç¨ã§ãããã§ãã
#kyon_kao_wedding 㨠#real_dvcs ã«åå ãã¦ãã¾ããã
ãããããããããããããçµå©ããã§ã¨ããããã¾ãï¼
ã¨ããäºã§ãåå ãã¦ãã¾ããã
#kyon_kao_wedding
ã¬ãçºè¡¨ã¨æ§ã ãªã®ããã®æ¸©åº¦å·®ã«ãããã¾ããããçµå©ããã§ã¨ããããã¾ããã©ã¤ãå°½ãã¾ããã
#real_dvcs
ã¢ã³ããã¼ã¿ã³ããã£ã±ãç´¹ä»ããã¦ãã¦èå³æ·±ãã£ãã§ããåãè½ã¯è¸ã¾ãªããï¼çãªã åºæ¬çã«"ä»®æ³"ã®è©±ãå¤ãã£ãã®ã§ããã"not ä»®æ³"ã®è©±ãæã£ã¦éãæ·±ãã£ãã§ãã
åã®çºè¡¨ã¯ãã¾ãéã¯ç¡ããã¤ã§RhodeCodeã®ç´°ãã使ãæ¹ã®è©±ããã¾ããã
git/hgã®ãªãã¸ããªãµã¼ãã¼ãå¤é¨ã®ãªãã¸ããªã®ãã©ã¼ãµã¼ãã¼ãç°¡åã«ä½ããããWebAPIã§ãã©ã¼ã¨ã®åæããªã¯ã¨ã¹ãã§ããã®ã§ã社å ç¨ã®ãã©ã¼ãµã¼ãã¼ã¨ãã¦æé©ã§ãã
ãã¡ããã·ããã使ã£ãéçºãã§ãã¾ããSide-by-Side Diffãã¤ã³ã©ã¤ã³ã³ã¡ã³ããæããã
ãWebã¢ããªã¨ã³ã¸ãã¢é¤æèªæ¬ããããã ãã¾ããã
åè¡è¨å¿µã¤ãã³ãã®äºç´æ¹æ³ã®é£æ度ãé«ããã¨ã§è©±é¡ã®ãWebã¢ããªã¨ã³ã¸ãã¢é¤æèªæ¬[ããã¿,éçº,ç°å¢æ§ç¯ã»éç¨â¦å ¨ä½åãææ°ç¥èã§æåãã!]ããæè¡è©è«ç¤¾æ§ããããã ãã¾ããããããã¨ããããã¾ãã
- ä½è : åç°è£ä»,ç³ç°çµ¢ä¸(uzulla),ããããã¾ãã®ã,æè¤ç¥ä¸é
- åºç社/ã¡ã¼ã«ã¼: æè¡è©è«ç¤¾
- çºå£²æ¥: 2014/03/11
- ã¡ãã£ã¢: 大åæ¬
- ãã®ååãå«ãããã° (2件) ãè¦ã
å ¨ç·¨æ¸ãä¸ããã§ãï¼
ãWebã¢ããªã¨ã³ã¸ãã¢é¤æèªæ¬ãã®ååã«éãããHTTPãHTMLãªã©ã®è©±ããå§ã¾ããéçºãã¼ã«ã®é¸ã³æ¹ãWebã¢ããªéçºããµã¼ãæ§ç¯ããµã¼ãã¹éç¨ã®ããã®ãã®ã³ã°ãç£è¦ã¨ãWebã¢ããªéçºã«å¿ è¦ã¨ãªãåºç¤ç¥èãä¸ããä¸ã¾ã§ç¶²ç¾ çã«è§£èª¬ããã¦ãã¾ãã
ãã¼ã¸æ°ã«å¯¾ãã¦åãæ±ãå 容ãå¤å²ã«ããããããåç« ã®å 容ãã¨ã¦ãæ¿ããªã£ã¦ãã¾ããåãå稿ã®ã¬ãã¥ã¼ãè¡ã£ããWebã¢ããªã±ã¼ã·ã§ã³å®è·µå ¥é Rubyç·¨ãã®ç« ãä¾ã«ãããã¨ã
- Rubyã®ææ³
- Bundlerã使ã£ãgemã®ç®¡ç
- æ§é åãããSinatraã¢ããªã±ã¼ã·ã§ã³ã®ä½æ
- ActiveRecordã§DBã«ã¢ã¯ã»ã¹
- ãã³ãã¬ã¼ãã®åå²
- ã»ãã¥ãªãã£
- ãããå¦ç
- rspecã«ãããã¹ã
- ã«ãã¬ãã¸è¨æ¸¬
ã¨èº«ã«ã¤ãã¦æ¬²ããç¥èãè©°ãè¾¼ã¾ãã¦ãã¾ãã*1 å 容ããµã³ãã«ããã°ã©ã ããã°ãããã®ã§ããã²åçµãã¦ã¿ã¦ãã ããã
ã©ããªäººã«ããããã
ããããWebéçºããã¨ã³ã¸ãã¢ã®æ¹ã¯ããã®ã ãã¯æ¬ãèªãã§ããã°ééããªãã§ããå ¨ä½åãææ¡ã§ãã¾ããåç« ã®çµããã«ããããWebãµã¤ããããããæ¸ç±ã®ç´¹ä»ãããã®ã§ãããã¦ãªãæ å ±ãã¤ãã¾ãããå¿é ãããã¾ããã
ãã§ã«Webéçºãã¦ããã¨ã³ã¸ãã¢ã®æ¹ã¯ãèªåã®åéãDevOpsã®Devå´ã§ããã°ãå¾åã®ã¤ã³ãã©ã®é¨å*2ããOpså´ã§ããã°ååã®ã¢ããªéçºã®é¨åãèªãã¨å¹ ãåºããã¨æãã¾ãã
*1:åãçè ã®ããã¼ãã§ã¯ãRubyãããç¹ã«Webéçºã«å¿ è¦ãªé¨åãå¼ã£ã±ãåºãã¦ãææ°ã®ãã¼ã¸ã§ã³ã¨ãã¼ã«ã«å¯¾å¿&å縮ãããæãã§ããããã
*2:åã¯Devå´ã®äººéãªã®ã§ãå¾åã®ã¤ã³ãã©ã®ç« ã"è£è¡¨ç´ã®è£"ã«ãããITã¤ã³ãã©æ§ç¯ãã§ãã¯ã·ã¼ããã¯ã¨ã¦ãåèã«ãªãã¾ããã
gitworkflowã«ã¤ãã¦ã®éæ
誰å¾UNIX-Blog: git-flowã§ãgithub flowã§ããªããGitæ¬å®¶æ¨å¥¨ã®ã¯ã¼ã¯ããã¼ http://t.co/WC3NmN0Yy3 @troter ã®ç±ã解説ãå¾
ã¨ã
— V (@voluntas) 2014, 2æ 2
æ¯ãããã®ã§ã詳ããå 容ã¯ãªã³ã¯å ãã©ãã¼ã
git reset
ç¹å¾´çã¨ããããåãããã£ã±gitããããªã¼ãã¨æã£ãã®ã¯ãgit reset <branch>
ãç©æ¥µçã«å©ç¨ãã¦ããç¹ã§ãã
gitworkflowã§ã¯4種é¡ã®çµ±åãã©ã³ããç¨æãã¦ãã¾ããããã®ãã¡2種é¡ã使ãæ¨ã¦ã®ãã©ã³ãã¨ããã®ãé¢ç½ãã§ãã
maint
- ã¡ã³ããã³ã¹ãªãªã¼ã¹ã¯ãããããææmasterã¸ãã¼ã¸ãããmaster
- æ©è½ãªãªã¼ã¹ã¯ãããããnext
- 使ãæ¨ã¦ãæ©è½ãªãªã¼ã¹(masterããã®ãªãªã¼ã¹)å¾ã«git reset --hard master
ããããpu
- 使ãæ¨ã¦ãæ©è½ãªãªã¼ã¹(masterããã®ãªãªã¼ã¹)å¾ã«git reset --hard master
ãããã
git-flow
ãgithub-flow
ã¯ãããã¯ãã©ã³ãã®resetãrebaseã¯ãã£ã¦ãçµ±åãã©ã³ããresetãrebaseãããã¨ã¯ããã¾ããã
ãã¼ã¸
ãã¼ã¸ã®åæ°ãå¤ããåãå¤æ´ããããããªçµ±åãã©ã³ãã«ãã¼ã¸ãã¾ãã
ãã°ä¿®æ£(åºæ¬çã«
maint
ãããããã¯ãã©ã³ããä½æãã)next
ã«ãã¼ã¸maint
ã«ãã¼ã¸
æ°æ©è½(åºæ¬çã«
master
ãããããã¯ãã©ã³ããä½æãã)pu
ã«ãã¼ã¸next
ã«ãã¼ã¸master
ã«ãã¼ã¸
ãããã¯ãã©ã³ãã®ãã¼ã¸ã¯ããããçºçãã¾ãããçµ±åãã©ã³ãéã®ãã¼ã¸ã¯maint
ã¨master
ã®ãã¼ã¸ã®ã¿è¡ããã¾ãã
maint
ã®å¤æ´master
ã«ãã¼ã¸
å®é¨ã§æ±ããpu
ãnext
ã¯git reset --hard master
ã§ãããã«æé¤ããã®ã§ãã¼ã¸ã¯çºçãã¾ããã
ããã
ããããæã¥ãã¦ãã¨æãã¾ãããgitworkflowã¯ãã«ãªã¯ã¨ã¹ããå©ç¨ããã¯ã¼ã¯ããã¼ã§ã¯ããã¾ããã
githubã®gitã®ãã©ã¼ãªãã¸ããªã®èª¬æã«ã¯ãThis is a publish-only repository and all pull requests are ignoredãã¨æ³¨ææ¸ããããã¾ããå¤æ´ãéãããå ´åã¯SubmittingPatchesã«ããéããã¡ã¼ãªã³ã°ãªã¹ã([email protected])ã«ããããæãããã¨ã«ãªã£ã¦ãã¾ãã
gitã¨ãããmercurialã¨ãããã¿ããªã¡ã¼ã«ã好ãã§ãããmercurialã®æ¹ã§ããèããã主張ã¨ãã¦ã¯ã誰ãä»äººã®ãã«ãªã¯ã¨ã¹ããè¦ãªãããæ¤ç´¢ããªãã®ã§ãç¥èã®èç©ãã§ããªãã¨ããã®ãããã¾ãããgitã®æ¹ã¯ã©ããªçç±ãªãã§ããããã(ã ãã詳ãã人ãããããã¾ãã)
gitworkflowã使ãã¹ãã
åè·ã®ä»äºã§gitworkflowã®ãã©ã³ãéç¨ãæ¡ç¨ãããã¨ããææ¡ããããã¿ããªã§æ¤è¨ããã®ãã¨ãããã®ã§ãããæéãå¤ãããã®ã§å®å®trunkãã¿ã¼ã³(master
ã¨ãã¤ã«ã¹ãã¼ã³ãã©ã³ã)ã«ãããã¨ã«ãªãã¾ããï¼ãã¦ãããã¾ããï¼ã
ãã®ã¨ãã¯ãã ããã次ã®ãããªãã¨ãèãã¦ãã¾ããã
pu
ã«ããã£ãå¤æ´ã®åä½ã確èªããå ´æããªãã- ãã¹ãç°å¢ã«ã¯
next
ç¸å½ã®ãã®ãããããpu
ã¯ã®ããªãã- ç°å¢ãç¨æãããéã®åé¡ããã
- ãã¹ãç°å¢ã«ã¯
- ãªãã¡ã¯ã¿ãªã³ã°ãã³ã¼ãã®æ´çã¯ãã£ãã¨ãªãªã¼ã¹ããããä½åº¦ããã¼ã¸ããããªãã
- å¤æ´ç¹ã
next
ã«ãã¼ã¸å¾master
ã«åå¥ã«ãã¼ã¸ãããã¾ã¿ãå°ãªãã- ãã¼ã¸æ¼ãã¯
git log
ã§çºè¦ã§ããããã¡ã¾ã¡ã¾ãã¼ã¸ããã®ãé¢åã - ã»ã¨ãã©ã®å ´åãå
¨é¨ãã¼ã¸ãã(orå¿
è¦ãªãã®ã ãrevertãã)æ¹ãç°¡åã
- è¦æãåªå é ä½ã¯ä¼è°ã§æ±ºã¾ããï¼ããéçºè ãåºå¸ãã¦ããã¤ãï¼
- åªå
é ä½ããã¤ã«ã¹ãã¼ã³ã§ä½æ¥ãã¦ãããããã£ã±ãªãªã¼ã¹ããªãï¼ããã¾ãçºçããªãã£ãã
- ãã£ã±ãªãªã¼ã¹ããªããã®ã¯ã ãããåºæ¥ã¦ãªãæ©è½ãªã®ã§ããã¼ã¸ãããã¦ãªãã
- å ã®ãã¤ã¯ãããã¯ãã©ã³ãã®ã¾ã¾ã§ããã¾ãå°ããªãã
- ãã¼ã¸æ¼ãã¯
next
ãæ¤è¨¼ç°å¢ã§ç¢ºèªãã¦ãæå³ããªããmaster
ã¨next
ã®å·®ãçºçããå ´åã¯ãã¹ãç°å¢ã«ã®ããæå³ããªã- åããã®ãæ¬çªã«ãªãªã¼ã¹ãããªãä¸å®ããã
master
ã¨å·®ãçºçããªããªãnext
ãããªã(ãã¤ã«ã¹ãã¼ã³ãã©ã³ããmasterã«ãã¼ã¸ããã°ããããã)
ã¾ã¨ããã¨ãnext
ã¨pu
ã®ä½¿ãæ¹ãè«è² ã®ä»äºã«ã¯åããªãã£ãã¨ãã話ã§ãã
ãªã®ã§ãnext
ãpu
ããã¾ãæ´»ç¨ã§ããã®ã§ããã°æ¡ç¨ã§ãã¾ããããã以å¤ã¯ãããæ¹ãããã¨ããã®ãåã®èãã§ãã