tortoisehg è¦å å®è£ mercurialå
çæ¬æ§å¶ç³»ç»ï¼Version Control System / Revision Control Systemï¼æè å«åæºç æ§å¶ç³»ç»Source Control Systemï¼ä»¥ä¸ç®ç§°VCSï¼ï¼æ¯è½¯ä»¶å¼å人åæ常ç¨çå·¥å ·ä¹ä¸ï¼ç±äºVCSæ¯å¦æ¤å¸¸ç¨ï¼æ以è±ä¸äºæ¶é´å»äºè§£å®æ¯æå¿ è¦çã
åå¸å¼çæ¬æ§å¶ç³»ç»ï¼Distributed Version Control System,DVCSï¼ï¼æ¯ç¸å¯¹äºéä¸å¼çæ¬æ§å¶ç³»ç»ï¼Centralized Version Control Systemï¼CVCSï¼èè¨çï¼æ¯å¦ï¼ä½¿ç¨äººæ°æå¤çSVNãVSSå°±æ¯å ¸åçCVCSãå¦æä½ æ¾ç»ç¨è¿SVNæVSSï¼å°±å¯ä»¥å¾å®¹æç解ä»ä¹å«åâCentralizedâ ãCVCSï¼æ¯æåªæä¸ä»½æ°æ®ä»åºåæ¾å¨ä¸å°æå¡å¨ä¸ï¼ææ客æ·ç«¯é½è¿æ¥å°è¿å°æå¡å¨ä»¥è¯»åæ°æ®ä»åºçå·¥ä½æ¨¡åãèDVCS模ååä¸ç¶ï¼æ¯ä¸å°ç»ç«¯é½æä¸ä»½å®æ´çæ°æ®ä»åºï¼ææç»ç«¯ä¹é´é½æ¯å¹³ççï¼å¹¶ä¸åå¨å¯ä¸çä¸å°âæå¡å¨âãææçç»ç«¯ä¹é´ï¼å¯ä»¥èªç±å°äº¤æ¢æ°æ®ã
DVCSå¯ä»¥å¾å®¹æå°æ¨¡æCVCSçå·¥ä½æ¹å¼ï¼åªè¦æå®ä»»æä¸å°ç»ç«¯ä½ä¸ºæå¡å¨ï¼è§å®ææ人é½å°æ´æ¹æ¨éå°è¿å°æå¡å¨ï¼å¹¶ä¸ææ人ä¹é½ä»è¿å°æå¡å¨è·åæ´æ°å³å¯ãèä¸CVCSç¸æ¯ï¼DVCSåæ以ä¸ä¼ç¹ï¼
a) æ´å å®å ¨ç代ç 管çã
å¨SVNä¸ï¼æ¯æ¬¡æ交é½æå³çæ£å¼ç代ç 被æ´æ¹ï¼å«äººå¯ä»¥ç«å³çå°æ¤æ¬¡æ交ï¼å¹¶ä¸å¯è½ç´æ¥å½±åå°æ£å¨è¿è¡çç³»ç»ï¼å¯è½ä¼æ人ç«å³å°æ¤æ´æ°æ·è´å°æå¡å¨ï¼ï¼è¿å¯¼è´ä¸ç³»åçé®é¢ãé¦å ä¸ä¸ªé®é¢æ¯ï¼æ人å¯è½ä¼æ æä¸æ交é误çãä¸å¯é ç代ç ãå ¶æ¬¡ï¼è¿å¯¼è´ç¨åºåä¸æ¢è½»æç¾å ¥æ´æ¹ï¼å½ç¨åºè¿è¡ä¸é¡¹èæ¶å¾ä¹ ï¼å¤§éä¿®æ¹çå·¥ä½æ¶ï¼ææçä¿®æ¹é½æ¯æ²¡æç»è¿VCSä¿æ¤çï¼è¿æ¯é常å±é©çï¼ä¹ä¸ç¬¦å使ç¨VCSçåè¡·ã
èå¨DVCSä¸åä¸åï¼å 为é¦å æ交å°èªå·±æ¬å°ä»åºä¸ï¼æ以ç¨åºåå¯ä»¥å°½éå°åæ°æ®ä»åºæ交æ´æ¹ï¼èä¸ç¨æ å¿è¿ä¼å½±åå°å ¶ä»äººæç³»ç»ï¼è¿å¯ä»¥å°ç¨åºåå¨å¼åè¿ç¨ä¸æ产ççå个çæ¬ä»£ç å®åå°ä¿æ¤èµ·æ¥ï¼å¨å¨æè¾é¿çå¼åä¸ï¼è¿ä¸ç¹ç¹å°¤å ¶æ¾å¾éè¦ã
è½ç¶å¨SVNä¸æåæ¯åè½å¯ä»¥è¾¾å°ç±»ä¼¼çç®çï¼ä½æ¯åæ¯å并æä½èµ·æ¥è¾ä¸ºç¹çï¼èä¸é常容æåçå²çªï¼ç»æå°±æ¯å¾å¤åºå½ä½¿ç¨åæ¯çåºåå ¶å®å¹¶æ²¡æ使ç¨åæ¯ã
b) æè±ç½ç»çæç¼ï¼éæ¶è¿è¡å®æ´çå·¥ä½ã
å¨SVNä¸ï¼ç±äºä¸å¤®ä»åºåªæä¸ä¸ªï¼æ以任ä½éè¦ä¸ä»åºæ²éçå¨ä½ï¼ä¾å¦æ¥è¯¢åå²çæ¬ï¼æ交æ´æ¹ççï¼å¿ é¡»é¦å èç½ï¼èå¨æäºæ¶åï¼è¿ä¸æç¼å°±æ¾å¾ä¸æ¹ä¾¿ï¼èå¨DVCSä¸ï¼åéæ¶å¯ä»¥ä¸æ°æ®ä»åºè¿è¡æ ç¼çæ²éï¼ç¨åºåå¯ä»¥åå ¶ä¸ä¸åæ交æ°çæ´æ¹ï¼ææ¥è¯¢æ个æ件çåå²çæ¬ï¼é½å¯ä»¥å¨å®å ¨æç½çæ åµä¸è¿è¡ã
c) æ´å æºè½ç代ç å并ã
å½ä¸¤ä¸ªäººå¯¹åä¸ä»½ä»£ç è¿è¡å·¥ä½æ¶ï¼ä¸¤ä¸ªäººçä¿®æ¹å¯è½ä¼äº§çå²çªãç¶èï¼SVNå½æ°çæ´æ¹è¢«æ交æ¶ï¼SVNåªè½æ¥çæç»ççæ¬ï¼è¿å¯¼è´SVN对æäºå·®å¼å¾å¤§çæ件æ æ³èªå¨å并ï¼è人工å并æ¯å¾è´¹æ¶è´¹åçãå¨Mercurialä¸ï¼å½ä¸¤ä¸ªä¸åççæ¬éè¦è¿è¡å并æ¶ï¼DVCSå¯ä»¥ä½¿ç¨è¿ä¸ªæ件ææçä¿®æ¹åå²æ¥ä¸æ¥ä¸æ¥å°è¿åæ´ä¸ªä¿®æ¹çè¿ç¨ï¼è¿æ ·ä¸æ¥ï¼Mercurialçå并è½åå°±è¿è¿å°è¶ è¿äºSVNï¼æ以å¨Mercurialä¸ï¼æå°ä¼åºç°äººå·¥å并çé®é¢ã
d) æ´å¿«çååºé度. ç±äºåç§æ¥å¸¸æä½é½æ¯å¨å¼å人åçæ¬æºè¿è¡ç, æ以ä¸ä»»ä½çCVCSç¸æ¯, DVCSçæä½ååºé度é½å°å¿«å¾å¤å.
å¦å¤ï¼å¯¹äºä¸ªäººé¡¹ç®æ¥è¯´ï¼å°¤å ¶éå使ç¨DVCSï¼å 为DVCS天ç¶å°æ é¿ç®¡çæ¬å°çæ°æ®ä»åºï¼ä¸åCVCSé£æ ·å¿ é¡»æ¶è®¾ä¸ä¸ªæå¡ç«¯ï¼ä¸ä¸ªå®¢æ·ç«¯ã
å æ¤æ»çæ¥è¯´ï¼åå¸å¼ç»æçMercurialå ·æSVNçææä¼ç¹ï¼èåæ¯SVNæ´å åçææã
ç®åçDVCSæ主è¦æMercurialåGit两款软件ï¼å ¶ä¸Gitçåä½è æ¯Linus大ç¥ï¼ç¨Cè¯è¨ç¼åï¼è¿è¡æ§è½ä¼äºMercurialï¼Mercurialæ¯ç¨Pythonåçï¼å¤©ç注å®æ§è½ä¸å¯è½æ¯Gitæ´å¿«ï¼ï¼ä½æ¯Linus以åæåçå¼åå¢é并ä¸æç®å¼åWindowsçæ¬çGitï¼æ以Gitæ¬èº«å¹¶ä¸æ¯æWindowsï¼åæ¥æäºä¸ä¸ªmsysgit项ç®å°Git移æ¤å°äºwindowså¹³å°ï¼å¹¶ä¸æäºå¼åäºä¸ä¸ªTortoiseGit客æ·ç«¯ï¼ä½¿å¾Gitå¨windowsä¸ä¹åå¾å®¹æ使ç¨äºï¼ä½æ¯å¨æ使ç¨çè¿ç¨ä¸ï¼è¿ç»åçå¤æ¬¡ä¸¥éçæ éï¼ææçå ¶å¨windowsä¸è¿ä¸å¤æçï¼å æ¤éç¨ä¸æä½ç³»ç»å ¼å®¹å®ç¾çMercurialã Mercurialè¿ä¸ªåè¯æ¯æ°´é¶çææï¼æ以Mercurialçå½ä»¤åéç¨äºæ°´é¶çåå¦å ç´ ç¬¦å·hgï¼è¿ä¹æ¯ä¸ºä»ä¹å®çå¾å½¢ç»ç«¯å«åTortoiseHgï¼èä¸æ¯TortoiseMercurialä¹ç±»çã
è¿éï¼/read/ï¼æä¸ä»½å®æ´çMercurialææ¡£ï¼è¯¦ç»æè¿°äºMercurialçåç§ç»èï¼ä¸è¿é´äºå ¶æ¯è±æçï¼æç®ååç½åä¸ä¸Mercurialçåºæ¬ç¨æ³ã
é¦å ï¼ä¸è½½å¹¶å®è£ ä¸ä¸ªTortoiseHg with Mercurial(mand hereï¼ è¿ä¼æå¼ä¸ä¸ªcmdå½ä»¤çªï¼è·¯å¾å°±æ¯å½åæ件夹ï¼ç´æ¥è¾å ¥å½ä»¤hg initï¼ å³å¯å®ææ°æ®ä»åºçå建ã
ï¼ä»¥åæä¹ä¸å欢ç¨å½ä»¤ï¼ä½æ¯ä½¿ç¨Mercurial以åï¼æåç°å ¶å®ç¨å½ä»¤å¹¶ä¸éº»ç¦ï¼å¾å¤æ¶åæ¯TortoiseHgæ¥å¾è¿è¦èæä¸äºï¼
image
å建æ°æ®ä»åºä»¥åï¼å次å³å»ï¼ ä¼åç°é¦å å¨ä¸çº§å³é®èåä¸å¢å äºHg Commité项ï¼èå项ä¸ååºç°äºä¸å¤§æå¯ç¨å½ä»¤ãè¿äºææ¶ä¸ç¨å»çå®ã
é便æ°å»ºä¸ä¸ªææ¬æ件ï¼ç¹å»hg commitï¼è¾å ¥ä¸ç¹æ³¨éï¼Mercurial强å¶è¦æ±æ¯æ¬¡commitå¿ é¡»å注éï¼ï¼ç¹å»æ交å³å¯ã
image
注æ左侧çæ件åè¡¨ï¼ å¿ é¡»å æä¸å¾ãå 为æ¯åMercurialæ°å¢æ件ï¼æä»¥å¿ é¡»å æ§è¡addå½ä»¤ï¼ ç¶åæè½commitï¼ä½ç°å¨è¿ä¸ªå¾å½¢çé¢ä¸ï¼å°±æ¯å å¾ä¸å·¦è¾¹ï¼åç¹commitã
å¦æ使ç¨å½ä»¤ï¼ååå«è¾å ¥ï¼
hg add
hg commit âm âsome comment hereâ
第ä¸è¡hg addä¼å°æææ°å¢çæ件æ 记为éè¦Mercurialè¿è¡è¿½è¸ªç®¡çï¼ç¬¬äºå¥åæ¯åæ°æ®ä»åºæ交修æ¹ã
è¿ééè¦æ³¨æçæ¯Updateå½ä»¤ãMercurialçUpdateä¸SVNå¨å®é ææä¸å·®å¼å·¨å¤§ãUpdateæ¯ç¨äºä½¿å·¥ä½ç®å½ä¸æ¬å°æ°æ®ä»åºä¹é´ä¿æä¸è´ãæ以ï¼å¦æä½ æ¯å人项ç®ï¼æ»æ¯å¨å·¥ä½ç®å½æ交修æ¹çè¯ï¼å®ä»¬è¯å®æ¯å®å ¨ä¸è´çï¼Updateå½ä»¤å°æ°¸è¿ä¸å¿ æ§è¡ãï¼è¿å¤§çº¦ä¹æ¯ä¸ºä»ä¹TortoiseHgæUpdateå½ä»¤ä½ä¸ºäºçº§å½ä»¤èä¸åCommité£æ ·æ¯ä¸çº§èåå½ä»¤ï¼ é£ä¹ä»ä¹æ¶åéè¦Updateï¼å çä¸ä¸pushåpullã
åå®æ们åæå建çä»åºä½äºD:\repo1ï¼ ç°å¨æ§è¡å½ä»¤hg clone d:\repo1 d:\repo2ï¼ æè å¨tortoisehgä¸ç¹å»cloneæ§è¡ç¸åºæä½ï¼å¾å½¢çé¢ä¸åä¸ä¸æªå¾ï¼å¾ç®åçæä½ï¼ï¼è¿æ ·å°±å建äºä¸ä¸ªæ°çä»åºrepo2ï¼ å®ä¸repo1æ¯å®å ¨ç¸åçãç°å¨årepo1æ交å¦å¤ä¸äºä¿®æ¹ï¼æ¾èæè§çï¼repo2ä»ç¶åçå¨cloneæ¶çç¶æï¼repo1çææ°ä¿®æ¹repo2并ä¸ç¥éã å¦æç°å¨å¸ærepo2ä¹è½æ´æ°å°repo1çææ°ç¶æï¼ åæ两ç§æä½æ¹å¼ï¼
1. Pushã Push顾åæä¹ï¼æ¯æ¨éçææï¼å°±æ¯ä»repo1ä¸æ¨éæ°æ®å°repo2ï¼ repo2 ä¸éè¦åä»»ä½å¨ä½ãå¨repo1ç®å½ä¸æ§è¡å½ä»¤hg push d:\repo2ã æè ç¹å»tortoisehgçSyncronizeï¼ å¨åæ¥çªå£ä¸ç¹å»pushå½ä»¤ï¼
image
ï¼è¿ç§æä½æå®å¨è§å¾è¿æ¯å½ä»¤æ¹ä¾¿ä¸äºãããï¼
å ¶ä¸ï¼pushå½ä»¤åé¢çè·¯å¾å¹¶ä¸æ¯å¿ é¡»çãæ¯ä¸ªæ°æ®ä»åºå¯ä»¥æä¸ä¸ªé»è®¤çè¿ç¨ä»åºï¼å¦æå¨repo1ä¸è®¾ç½®äºé»è®¤è¿ç¨ä»åºä¸ºrepo2ï¼ ååªéè¦æ§è¡hg push å°±å¯ä»¥äºãå½æ§è¡cloneå½ä»¤æ¶ï¼ä¼èªå¨ææ¥æºä»åºè®¾ä¸ºé»è®¤è¿ç¨ä»åºï¼æ以å¨repo2ä¸å¯ä»¥ç´æ¥æ§è¡hg pushæhg pullï¼ ä¼èªå¨å°repo1ä¸åæ¥æ°æ®ã
å 为repo1并ä¸ç¥érepo2çåå¨ï¼ æ以å¦æéè¦æå¨è®¾ç½®é»è®¤è¿ç¨ä»åºï¼å¦ä¸è¿æ ·æä½ï¼
ç¹å»å³é®â>TortoiseHgâ>Repository settings,
image
ç¹å»Edit file, å¦å¾æ示, ä¿®æ¹default为éè¦æå®çè·¯å¾å³å¯.
ä¿®æ¹å®æ以å,å³å¯ç´æ¥æ§è¡hg push èä¸ç¨åæhg push d:\repo2äº.
2. Pull. Pullæ¯æåçææ, å³è¢«æ´æ°çä»åºä¸»å¨ä»è¿ç¨ä»åºæåæ°æ®. å¨æ¬ä¾ä¸, å°repo2çç®å½ä¸æ§è¡hg pullå³å¯. å 为repo2æ¯ä»repo1 cloneæ¥ç, æ以repo2å·²ç»èªå¨ærepo1设置é»è®¤è¿ç¨ä»åº, ä¸éè¦ååhg pull d:\repo1äº.
æ以,æ 论æ¯ä»repo1端push, è¿æ¯ä»repo2端pull, é½å¯ä»¥è¾¾å°æ´æ°repo2æ°æ®ä»åºçç®ç.
ç¶èéè¦æ³¨æçæ¯, æ 论æ¯pushè¿æ¯pull, é½åªæ´æ°æ°æ®ä»åº, èä¸æ´æ°å·¥ä½ç®å½.
è®°ä½è¿ä¸ç¹é常éè¦, å¦åå¯è½ç»å¸¸ä¼è¿·æ为ä»ä¹ä¸é¢æä¸ç¬¦. pushæpullä¹å, repo2çæ°æ®ä»åºä¸å·¥ä½ç®å½å·²ç»ä¸ç¬¦, è¿æ¶å°±éè¦å¨repo2ç®å½ä¸æ§è¡hg updateå½ä»¤, å³å¯å°å·¥ä½ç®å½æ´æ°å°ä¸æ°æ®ä»åºä¸è´.
å½åSVNé£æ ·ä½¿ç¨è¿ç¨æå¡å¨ä½ä¸ºä¸»æºæ¶, æ¯æ¬¡Pullåå¯ä»¥è¯å®æ¯è¦æ§è¡updateç, è¿æ ·ä¸¤æ¬¡æä½æ¾ç¶å¸¦æ¥ä¸ä¾¿, å¨TortoiseHgä¸, å·²ç»éæäºè¿æ ·çå½ä»¤, é¦å å³é®â>TortoiseHgâ>Syncronize, æå¼åæ¥çªå£,
image
ç¹å»Post Pull, å¨å¼¹åºçå°çªå£ä¸éæ©Update, è¿æ ·æ¯æ¬¡pullä¹åå°±ä¼ç«å³æ§è¡updateäº.
æè å¨é¡¹ç®çæ ¹ç®å½ä¸åä¸ä¸ªæ¹å¤çæ件, å æ¬ä»¥ä¸ä¸¤è¡å³å¯:
hg pull
hg update
以åæ¯æ¬¡éè¦è·åæ´æ°æ¶, åå»ä¸ä¸è¿ä¸ªæ¹å¤çå³å¯, æè§å¾è¿æ¯å½ä»¤æ¹ä¾¿â¦â¦
以ä¸ç®åç½åäºMercurialçåºæ¬ç¨æ³, 对äºæ¥è¯¢åå²ä¿®æ¹çæä½, TortoiseHgçèåå·²ç»é常ç®å, ä¸SVNä¹æ²¡æä»ä¹å·®å«, èªè¡ç¹å»çä¸ä¸å³å¯.
å ³äºå¨ä¸¤å°çµèä¹é´ä¼ éæ°æ®ï¼Mercurialèªå¸¦äºä¸ä¸ªç®åçServeå½ä»¤ï¼ä¾å¦å¨d:\repo1ç®å½ä¸æ§è¡å½ä»¤hg serverï¼ ä¼ç«å³å¯å¨ä¸ä¸ªé»è®¤å¨ç«¯å£çå¬çæå¡è¿ç¨ï¼è¿ä¸ªå½ä»¤ä¼è¿åä¸ä¸ªurlå°åï¼å¦ä¸å°çµèå¯ä»¥ç¨hg clone <url> local-path çå½¢å¼å¤å¶æ¬æºçrepo1ä»åºï¼ä½æ¯è¿ä¸ªserveå½ä»¤æ¾ç¶åªæ¯ä¸ä¸ªé常ç®åç临æ¶éå¾ï¼å¦æè¦é ç½®ä¸å°ä½ä¸ºæå¡å¨çä¸å¤®ä»åºï¼å½ç¶å°±ä¸è½ä» ä» ä½¿ç¨serveå½ä»¤äºï¼èæ¯åºè¯¥ä½¿ç¨IISæå ¶å®web serverï¼ä¸ä¸ç¯å°±ä»ç»å¦ä½å¨IISä¸æ¶è®¾ä¸ä¸ªMercurialçWeb Server,请åé åå¸å¼çæ¬æ§å¶ç³»ç»Mercurial
几款最佳的代码审查工具
好的代码审查器可以显著提升代码质量,减少错误概率。分析在众多可用的源码代码审查工具中,挑选出最佳者并非易事。分析专家建议下,源码以下款工具被列为我们推荐的分析传奇1.80源码最佳代码审查工具。 CodeStriker是源码一款免费且开源的Web应用,它提供基于Web的分析代码审查功能。开发者能够在此系统中记录问题、源码意见和决定,分析并在数据库中保存。源码它为代码审查提供了舒适的分析工作区域。 RhodeCode是源码一款出色的代码审查工具,能帮助你发现并清除代码中的分析bug和问题。它确保代码质量得到提升,源码问题得到及时解决。 Codebrag是一款轻量级代码审查工具,能够解决诸如非阻塞审查、智能邮件通知和在线注释等问题,简化代码审查流程。 Phabricator是一个开源软件和Web应用,具备代码审查、托管GIT /Hg/ SVN、查找bug、浏览和审计源代码等功能,是开发人员的首选工具。 Codifferous是一款免费代码审查工具,提供快速的代码审查服务。无论何时何地,Codifferous都能让团队协作审查工作变得更加容易。即使错过一个pull请求,也无需担心,重庆源码设计全案它允许检查任意分支上的代码,并随时留下注释、获得反馈。 Getbarkeep是“非常友好的代码审查系统”,让你以快速有趣的方式检查代码。它还能帮助你翻阅Git存储库的提交、查看diff文件、写注释,并将这些注释通过电子邮件发送给下一位提交者。 Crucible是一款深受欢迎的代码审查工具,可审查代码、讨论修改,并通过其灵敏的审阅流程确定缺陷。Crucible使得Subversion、CVS、Perforce等版本控制软件的代码审查变得简单。 Code Review Tool允许团队成员通过简单而有效的方式协作审查代码。它提供正式代码检查的所有优势,但所需精力和时间更少。它支持正式和轻量级的代码审查过程。 Malevich审查代码非常简便。审查人员在同一个浏览器中即可查看文件的原始版本和新版本,轻松为代码行添加注释。提交注释后,其他代码审查人员可共享。 SmartBear是一个帮助团队通过共同的开发、测试和管理工作生产出高质量代码的代码审查工具。它允许团队在透明、协作的框架下进行同行代码审查、用户故事和测试计划,即时保持整个团队知晓对代码所做的11补码源码反码更改。 Review Assistant是与Visual Studio集成的简单且优秀的代码审查工具。你可以在审查级别、特定的源代码块或源代码条上添加注释,在预定会议之外启动与团队成员关于代码的讨论,标记需要修正的注释和缺陷之处,并在代码编辑器中显示审查注释。 Review Board是节约时间、资金和精力的代码审查工具。它提供语法高亮的代码,方便快速阅读。 Peer Review Plugin通过提供基于Web的友好审查环境,节省开发人员在代码审查会议上的时间浪费。 Code Reviewer是一款免费、简单且易于部署和使用的代码审查工具,由SmartBear开发,也是Collaborator的发明者——业界第一家推出商用代码审查工具的公司。 Code Analysis Tool着眼于解决两个基本问题:现代IT系统由多个团队和许多开发人员构建的数千个组件组成,以及测量这些系统的软件质量需要涉及多种技术和代码工具。CAST代码分析技术提供了解决方案。 jArchitect简化了复杂Java代码库的管理。它能够分析代码结构、指定设计规则、执行高效的代码审查,并通过比较不同版本的代码了解改进情况。 Reviewale是新推出的代码审查工具,功能包括语法高亮、发现bug/问题、改进代码、干净的用户界面、自定义代码字体等。Ubuntu下编译OpenJDK9
为了在Ubuntu下编译OpenJDK9,仿照抖音源码首先安装VMware Workstation Pro和Ubuntu ..2 LTS,确保系统干净无其他应用。
接着,通过Mercurial(hg)获取OpenJDK9的源代码,安装并下载hg,然后访问OpenJDK官网获取源代码的下载地址。按照指导,使用hg下载源代码,注意要执行get_source.sh脚本。
在下载过程中可能会遇到问题,如“exited abnormally”或“stream ended unexpectedly”,此时可重新执行下载脚本。完成下载后,会生成约1GB的文件,包含大量.hg文件夹。
阅读OpenJDK官网提供的JDK 9 Build README,以了解编译步骤。在配置阶段,应避免使用系统自带的OpenJDK8作为Boot JDK,推荐手动下载安装Oracle的Java 8版本以确保稳定性。
访问Oracle官网下载Java 8,解压后将其放置在指定目录。配置编译环境时,可能会遇到缺少X库的问题,通过执行特定脚本解决。在多次尝试和调整后,完成配置。
使用make images命令开始编译过程,整个编译耗时约8分钟。编译完成后,生成的多火 app源码build文件夹包含了所需JDK文件。将整个jdk文件夹复制到指定目录,并进行简单测试以验证编译成功。
对于Mac和Windows用户,OpenJDK9的编译流程类似,只需根据各自操作系统的特定需求进行调整。
ZNHG光猫最新破解超级密码方法详解
最近家中光猫(型号为ZNHG)的配置模式发生了变化,导致之前的超级管理员密码失效。经过多次尝试,发现先前的破解方法不再有效,因此我决定自己研究新的破解策略。
原破解步骤中,通过在Chrome浏览器输入光猫的IP地址(..1.1)进入管理界面,并按照特定路径进行操作,可以找到超级管理员密码。但如今,跳转后的页面显示的密码为位的数字和小写字母组合,这与先前的明文密码形式不同。
观察登录页面的源代码后,我发现了一些关键信息。登录页面中引用了名为md5.js的文件,并且在处理用户输入密码时,会计算其MD5值并与服务器端的乱码进行对比。这意味着,超级管理员密码的计算过程涉及到MD5哈希函数。
由于超管密码具有特定格式(前缀telecomadmin加8位数字),我们可以采用暴力破解的方法来尝试所有可能的组合。通过计算这些组合的MD5值,并与服务器端的乱码进行比较,最终找到匹配的密码。
针对这一需求,我提供了一个C#代码示例。如果您熟悉GitHub Actions,可以通过将其代码应用于GitHub上的服务器环境,实现自动破解过程。对于不熟悉此技术的用户,我提供了一个简单的小工具,需要在运行时具备.NET Framework 4.5.2或更高版本。
希望上述信息能帮助您解决问题,欢迎在社区分享您的成果。别忘了关注我的其他文章,了解更多关于路由器的相关内容。感谢您对我的支持!
常见的Web源码泄漏及其利用
Web源码泄漏漏洞及利用方法
Git源码泄露是由于在执行git init初始化目录时,会在当前目录下自动创建一个.git目录,用于记录代码变更等信息。若未将.git目录删除即发布到服务器,攻击者可通过此目录恢复源代码。修复建议:删除.git目录或修改中间件配置以隐藏.git隐藏文件夹。
SVN源码泄露源于其使用过程中自动生成的.svn隐藏文件夹,包含重要源代码信息。若网站管理员直接复制代码文件夹至WEB服务器,暴露.svn隐藏文件夹,攻击者可利用.svn/entries文件获取服务器源码。修复方法:删除web目录中的所有.svn隐藏文件夹,严格使用SVN导出功能,避免直接复制代码。
Mercurial(hg)源码泄露通过生成的.hg文件暴露,漏洞利用工具为dvcs-ripper。运行示例需具体说明。
CVS泄露主要针对CVS/Root和CVS/Entries目录,直接暴露泄露信息。修复工具为dvcs-ripper,运行示例同样需具体说明。
Bazaar/bzr泄露为版本控制工具泄露问题,因其不常见但多平台支持,同样存在通过特定目录暴露源码的风险。具体修复方法与运行示例需进一步说明。
网站备份压缩文件泄露是管理员将备份文件直接存放于Web目录,攻击者通过猜测文件路径下载,导致源代码泄露。常见备份文件后缀需具体列出,利用工具御剑用于这类漏洞的利用。
WEB-INF/web.xml泄露暴露了Java WEB应用的安全目录,若直接访问其中文件需通过web.xml文件映射。WEB-INF目录主要包括文件或目录,通过web.xml文件推断类文件路径,最后直接访问类文件,通过反编译得到网站源码。
.DS_Store文件泄露源于Mac系统中Finder保存文件展示数据的文件,每个文件夹下对应一个。若上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件的泄露。利用工具为github.com/lijiejie/ds_...
SWP文件泄露为编辑文件时产生的临时文件,是隐藏文件,若程序意外退出则保留。直接访问并下载.swp文件,删除末尾的.swp后,可获得源码文件。
GitHub源码泄露通过关键词搜索功能,容易找到目标站点的敏感信息,甚至下载网站源码。此类泄露源自代码托管平台,需注意个人代码管理安全。
总结,Web源码泄漏涉及多个环节,从代码版本控制到备份存储,再到代码托管平台,每个环节都可能成为攻击点。修复策略包括删除隐藏文件、严格使用版本控制功能、加强代码备份安全措施以及提高代码托管平台安全意识。
详细过程ubuntu下面编译openJDK8,修改源码IDEA中调试
编译JDK源码的最佳实践是亲手操作,理解其流程。网上有许多教程,但只有实际操作,才能深刻理解整个过程。
首先,环境准备上选择Ubuntu .,因为在此版本下,编译过程中遇到的异常较少。使用低版本Ubuntu的主要目的是为了专注于编译源码和阅读源码,而不是研究版本兼容性问题。高版本的OpenJDK理论上可行,但这里更多是选择已熟悉使用的OpenJDK 8版本。
获取OpenJDK 8源码有两种方式:利用Mercurial(hg)或手动下载。Mercurial是OpenJDK使用的代码管理工具,通过hg clone命令下载源码。在遇到执行卡死问题后,改用手动下载方式。
下载地址为jdk.java.net,选择相应版本下载。下载后得到openjdk-8u-src-b-_jan_.zip,解压后重命名为openjdk8。
接着,需要安装基础JDK作为编译环境。可选择手动下载已编译好的JDK7作为引导JDK,如openjdk-7u-b-linux-x-_dec_.tar.gz。解压并重命名后,配置系统环境变量,确保编译过程顺利进行。
安装编译所需的依赖,并检查是否遗漏。执行命令检查依赖,如有缺失,按照提示进行安装。ccache配置后出现版本过旧的提示,不影响编译。
编译前需进行一系列检查:设定语言选项、查看PATH环境变量、清除JAVA_HOME变量,确保编译环境配置正确。执行make all命令,过程中可能会遇到报错,通过修改相关源文件,如hotspot/make/linux/Makefile的SUPPORTED_OS_VERSION变量,添加4%,解决内核版本问题。
验证编译成功,通过执行java -version命令确认。编译后源码使用,如创建Test.java源文件,通过Javac编译器编译为Test.class文件。运行Test.class文件,输出信息确认编译成功。
在IDEA中使用JDK源码调试,首先安装IntelliJ IDEA,下载并解压到opt目录,通过idea.sh启动。将编译好的JDK导入IDEA,配置debug,去掉Before launch中的build选项,执行测试代码。
为了更方便地查看源码,可以修改JDK源码,如为System.out.println添加打印前缀。修改源码后重新编译,执行测试代码以验证修改效果。
通过实际操作和实践,对JDK源码的理解将更加深入。本指南提供了一个完整的编译和调试流程,帮助开发者深入理解JDK源码的细节。
华为HGD,已刷openWRT,求教认证Inode的办法
inode 一般都有版本限制, Openwrt里面内置的njit-client 是2.4的版本, 太老了。 网上下载Njit-client的源码, 自己修改版本号,然后编译。 我们学校就是inode。
2024-12-24 07:58
2024-12-24 07:55
2024-12-24 07:47
2024-12-24 06:55
2024-12-24 06:39