StarTeamãšã¯äœäººã®äººãèããŠããŸããïŒ æ°ã¶æåã®ç§ã®ããã«ãä»ã®äºæã§ã¯ã»ãšãã©äººã¯ããªããšæããŸãã
ç§ã®çŸåšã®ä»äºå ŽãŸã§ããã®ãããªããŒã©ã³ã補åã®ããšã¯èããããšããããŸããã§ããã Googleã«èããŠã¿ããšããã®è£œåã¯ãŸã ååšããéçºäžã§ããããšãããããŸããããæ³åã®ãšãããææ°ããŒãžã§ã³ããã¯é ããæåŸãã2çªç®ã®ããŒãžã§ã³ã§ããããŸããã 2003幎ã«éçºãããããŒãžã§ã³5.3ãããã2004幎ã«ããã«ã€ã³ã¹ããŒã«ãããŠæµéããŸããã ãããŠãã»ãŒ11幎éã圌女ã¯ä»äºãããŠè§£æ±ºããŸããã
ã€ãã·ã¢ããã®å°é家ãšããŠããã®å€ãã¢ã³ã¹ã¿ãŒã®é«ªã®æ¯ã¯ããã«åãå§ããããçŸä»£çãªãã®ã«ç§»è¡ããããšã決å®ãããŸãããããã¯SVNãŸãã¯Gitã§ãã ç§ã¯åœŒãšååãšã®çµéšããããçµå¶é£ã¯ãã¹ãŠã«åæãããããéžæã¯SVNã«ããã£ãŠããŸããã æ¢è£œã®ãœãªã¥ãŒã·ã§ã³ãæ¢ããçµæã PalarionããSVNã®Importerã çãŸããŸããããã®ãœãªã¥ãŒã·ã§ã³ã§ã¯ãããã«é¢ããèšäºããããŸãã ããããçµå±ã®ãšããããã¹ãŠãåçŽãããããã§ã¯ãªããããŒãžã§ã³5.3ãããããã®è£œåã«ã¯2005ããŒãžã§ã³ã®SDKãå¿ èŠã§ãããéåžžã«åé¡ãå€ãããšãå€æããŸããã å¿ èŠãªã©ã€ãã©ãªã®ååãå€æŽãããªã©ãããããçš®é¡ã®ããªãã¯ã䜿çšããŠãããã®ã€ã³ããŒã¿ãŒãèµ·åã§ããŸããã§ããã
ä»ã«äœãã§ããŸããïŒ æ¬¡ã®ããã«ãæ°ããStarTeamãµãŒããŒãäœæããããšããŸããã SVNãšçµ±åãããæ¢åã®ãµãŒããŒã«æ¥ç¶ããŸãããã©ããããäºãã«äºææ§ããªãããµãŒããŒããäºããèªèããªãã£ããããäœãã§ããŸããã§ããã
ããã§ç§ã¯äœãããŸãããïŒ ãã¡ãããç§ã¯æ¬åœã®ããã°ã©ããŒãšããŠè¡åããŸãããèªåã®ããŒã«ãæžããŸããïŒ
èšèš
ããã§ã¯ããœãŒã¹ããŒã¿ã«ã¯äœãå«ãŸããŠããŸããïŒ ç§ãæã£ãŠããïŒ
- StarTeam Server 5.3
- StarTeam Client 5.3
- StarTeam SDK 5.3
- ç¹å®ã®ãªããžããªãæã€SVNãµãŒããŒ
- ã³ã³ãœãŒã«ã¯ã©ã€ã¢ã³ããã€ã³ã¹ããŒã«ãããTortoiseSVN
- è²æž¡ãããããžã§ã¯ã
StarTeamã®çŽ¹ä»
ææ°ã®StarTeamãã©ã®ããã«æ©èœãããã¯ããããŸããããããŒãžã§ã³ç®¡çãªã©ã®æ©èœããªããããçŸåšã®ããŒãžã§ã³ã¯ã²ã©ããã®ã§ãã åãã¡ã€ã«ã¯åå¥ã«ããŒãžã§ã³ç®¡çãããŸãããã®ãã¡ã€ã«ãšåæã«é 眮ããããã®ãç解ãããã°ããã¹ãããã·ã§ãããåŒãåºãããšã¯éçŸå®çã§ãã ãŸããä»ã®ãã¹ãŠã«-ãã®ããŒãžã§ã³ã¯ãã©ã®ãã¡ã€ã«ãå€æŽãããŠããããåžžã«é©åã«ç解ããããšã¯ã§ããŸããïŒã€ãŸããå€æŽããããã¡ã€ã«ã¯100ïŒ è¡šç€ºãããŸããã50/50ã«è§Šããªãã£ããã¡ã€ã«ã¯å€æŽããããšç解ãããŸãïŒã
ãŸãæè¿ããã·ã¢èªã®ãã¹ãŠã®ã³ã¡ã³ããšãŠãŒã¶ãŒåãã»ããã?????ãã®åœ¢åŒã§è¡šç€ºããããšããåé¡ããããŸãããããã¯ããšã³ã³ãŒããã©ããã«æµããŠããããšãæå³ããŸãïŒããã«èå³æ·±ãããšã«ããšã³ã³ãŒãã¯ã¯ã©ã€ã¢ã³ãã®ã©ãã«ãæå®ãããŠããŸããïŒ ãããŠããªã誰ããã®çç±ã確å®ã«ç¥ããŸããããããŠããã®ãããªåé¡ãå§ãŸã£ããšãã圌ãã¯ç¢ºå®ã«èšãããšãã§ããŸããã
StarTeamã®ãã®ä»ã®æ§æèŠçŽ ã¯äœã§ããïŒ MS SQL 2008ã«åºã¥ãããŒã¿ããŒã¹ãããã¯ãšãªãæ£ããèšè¿°ããå¿ èŠãªãã®ããã¹ãŠåŒãåºãããšãã§ããããã«æããŸãããã ããããS01ãS02ãViewã»ãããªã©ã®ååã®ããŒãã«ãçŽ100åèŠããããããŒã¿ããŒã¹ã§ã®çŽæ¥ã¯ãšãªäžã®ãšã³ã³ãŒããæ£ãã衚瀺ãããªããããããããã¹ãŠãåŠçããªãããšã«ããŸããã
è¡åèšç»
ãã®ãããèå³æ·±ããªããžããªã«ãœãŒã¹ãããžã§ã¯ããããã空ã®ã¿ãŒã²ãããªããžããªããããŸãã ãã®ãããžã§ã¯ãã§ã¯ã Palarionã«SDKã«å«ãŸããŠããstarteam80.jarãå¿ èŠã§ãããSDKã«ã¯starteam53.jarãããããŸããã ããã«èšã£ãŠãããŸããããã®ãããžã§ã¯ãã®éå§åã«Javaã§ããã°ã©ã ãäœæããããšã¯ãªãã1è¡ã®ã³ãŒãã§ããã ãã ããå¿ èŠãªå Žåã¯ãIDEãã€ã³ã¹ããŒã«ããŠè©ŠããŠãã ããã IDEãšããŠNetBeansãéžæããstarteam53.jarã®äžèº«ã解æãå§ããŸããã
ãã®ããã±ãŒãžå ã«ã¯ãStarTeamãµãŒããŒãæäœã§ããã¯ã©ã¹ã®ã»ããããã¹ãŠå«ãŸããŠããŸãã Borlandãµã€ãã«ã¯SDKã®ããã¥ã¡ã³ãããããèšå€§ãªæ°ã®ã¯ã©ã¹ã§ç¡æå³ãªãªãŒã«ããããªããæããŸãã 次ã«ããµãŒããŒã«æ¥ç¶ããŠãããžã§ã¯ãã®ãªã¹ããè¿ãããšãã§ããåçŽãªãããžã§ã¯ããäœæããŸãã StarTeamã®ã©ã€ãã©ãªã2æéèŠãããåŸãç§ã¯æãŸããçµæãéæããŸããã SDKã䜿çšããŠStarTeamãæäœã§ããããšãæããã«ãªã£ããããã¹ããŒãªãŒå šäœã転éããæ¹æ³ã決å®ããã ãã§æžã¿ãŸãã
ãããïŒ ããã§ã¯ãStarTeamã®ãã¹ãŠã®åé¡ã«ã€ããŠã¹ããŒãªãŒãã©ã®ããã«åé 眮ããŸããïŒ
StarTeamã«ã¯ãåãã¡ã€ã«ã®ã¿ã€ã ã¹ã¿ã³ãããããŸãã ã³ã¡ã³ãä»ãã®åã ã®ãã¡ã€ã«ã®å€æŽå±¥æŽãšå€æŽã®æ£ç¢ºãªæéãååŸã§ããŸããããã¯ãããã«åºã¥ããŠæ§ç¯ããããšãæå³ããŸãã
StarTeamã§ã³ããããè¡ããããšãã³ãããäžã®åãã¡ã€ã«ã«ã³ã¡ã³ããæžã蟌ãŸãããããæåã®ãã¡ã€ã«ããã³ã¡ã³ããšäœæè ãååŸããã ãã§ååã§ãæ®ãã¯ãã§ã«äžèŽããŠããŸãã
StarTeamã«ã¯ãã¡ã€ã«ãä¿åããæ©èœãããããããžã§ã¯ãã«ä¿åããŸãããããžã§ã¯ãã«ã¯ãã¡ã€ã«ãšãã©ã«ããŒãããããã©ã«ããŒã«ã¯ããã«å€ãã®ãã¡ã€ã«ãšãã©ã«ããŒããããåãã¡ã€ã«ã«ã¯ããŒãžã§ã³ããããŸãã
ãŸããSDKã«ãã¡ã€ã«ãåçŽã«æœåºããããã«èŠæ±ãããšãStarTeamã¯ã¯ã©ã€ã¢ã³ãã§ããã©ã«ãã§æ§æãããŠããå Žæã«ãã¡ã€ã«ãæœåºããŸããããã¯ç§ã«ãšã£ãŠã¯ããŸãããããæåã«ãã¡ã€ã«ã¹ããªãŒã ã«æœåºããå¿ èŠããããŸããã£ã¹ã¯ã«ã
次ã®ç§»è¡ãã¹ãæãä»ããŸããã
- StarTeamããããŒã«ã«ãã©ã€ãäžã®ãã©ã«ããŒã«ãã¹ãŠãã¢ããããŒãããŸãã
- ãã©ã«ããééããŠãã¹ãŠãSVNã«ã¢ããããŒãããã³ã¡ã³ããã£ãŒã«ãã«StarTeamã§ã³ããããè¡ãããæå»ãå ¥åããŸãã
次ã®ã¹ããŒã ã«åŸã£ãŠã¢ã³ããŒãããŸãã
- ãã©ã«ãããªãŒãšãããžã§ã¯ããã¡ã€ã«ã®ååž°çãªèµ°æ»ãéå§ããŸãã
- æåã®ãã¡ã€ã«ãååŸããŸãã
- 圌ã®è©±å šäœãæœåºããŸãã
- å±¥æŽã確èªãããã¡ã€ã«ããã©ã«ããŒã«å ¥ããŠãããžã§ã¯ãããšã¯ã¹ããŒãããŸãã
- ãã¹ã¯ãyyyy.MM.dd.HH.mmãã«ã¿ã€ã ã¹ã¿ã³ããæã€ãã©ã«ããŒãäœæããŸãïŒæåã¯1ããªç§ã®ç²ŸåºŠã§å®è¡ããŸããããå€æããããã«ã1ã€ã®ã³ãããããã®ãã¡ã€ã«ã¯ç°ãªããªããžã§ã³ã«å ¥ãããšããããŸãããããã¯ééã£ãŠããŸãè¡çªãšåé¡ã®ã¢ãããŒãã¯ããã§ã¯ãªãã£ãïŒ;
- ãã©ã«ããŒã«å±¥æŽãã¡ã€ã«ãäœæããŸããããã«ã¯ãäœæè ã®ååãã³ã¡ã³ããã¿ã€ã ã¹ã¿ã³ããæžã蟌ãŸããŠããŸãã
- æåŸã®ãã¡ã€ã«ãæœåºããããŸã§è¡ããŸãã
StarTeamããã®æœåº
ãããã£ãŠãNetBeansãJavaãããã³ãã®ããã°ã©ãã³ã°èšèªã§ã®0ã®çµéšã Javaã®éçºçµéšããªããããšãã£ãŠæãã¯ãããŸãããGoogleãããããã§ãããããžã§ã¯ãã¯äžåºŠéãã§ããã誰ãç§ããæé«ã®ç¥èãå¿ èŠãšããªãã®ã§ãã©ãã§ãã³ãŒãã®ããã©ãŒãã³ã¹/ã¡ã¢ãª/çŸãããç ç²ã«ããããšãã§ããŸãã
ã³ããããæœåºãããšãã«ãæååã§ã¯ãªãIDãšããŠã³ãããã®äœæè ãè¿ããããšããåé¡ã«ééããŸããã ããã¥ã¡ã³ãã®æ€çŽ¢ã§ã¯ãèè ãååŸã§ããããšã瀺ãããŸããããID +ååã®ãªã¹ãã®åœ¢åŒã§ãããããšã³ã³ãŒãã«åé¡ããããå€ãã®ãŠãŒã¶ãŒãèªãããšãã§ãããäœããã®çç±ã§å€æ°ã®ãã€ã¯ããããSVNã§è€è£œãéå§ããèšç»ã¯ãããŸããã§ããã ããŒã¿ããŒã¹ã§å¿ èŠãªãã¥ãŒãèŠã€ããããããé»åã¡ãŒã«ã§é€å€ã¡ãœããã䜿çšããŠãã©ã®èè ãã©ã®èè ã«å±ããããå²ãåœãŠãŸããã ããã«æ倧ã®æŸèæããããŸããèè ã®ååãšããã¹ã¯ãŒããšãŠãŒã¶ãŒãã¹ã€ããã±ãŒã¹ãä»ããŠè¿ããŸããããããã¯æãã§æé©ã§ã¯ãããŸããããç§ã®åé¡ã«ã¯è¡ãå ããããŸããã
ãã®ããã°ã©ãã³ã°èšèªã§ã®äœæ¥çµéšããªãã«ãããããããç§ã¯æªãã³ãŒããæžãã€ããã¯ãªãã次ã®ããã«ãªããŸããã
StarTeamããããŒã¿ãååŸãããœãŒã¹ã³ãŒã
Server StarTeamServer = new Server("WINAPPSRV", 49201); StarTeamServer.connect(); if (StarTeamServer.isConnected()) { System.out.println("Connect to server OK!"); StarTeamServer.logOn("markov", "123456"); if (StarTeamServer.isLoggedOn()) { System.out.println("LogOn to server OK!"); Project[] projects = StarTeamServer.getProjects(); Project TW = null; for (Project currentproject : projects) { if (currentproject.getName().equals("Tw")) { TW = currentproject; break; } } if (TW != null) { System.out.println("Try to find first revision"); View CurrentView = TW.getDefaultView(); // / ExtractFullTreeFromRoot(CurrentView.getRootFolder(), "/", "C:/StarTeamToSVN"); } else { System.out.println("Project Tw not found in StarTeam repository"); } } else { System.out.println("LogOn to server failed :'("); } StarTeamServer.disconnect();
é¢æ°ãœãŒã¹ã³ãŒã
private static void ExtractFileHistory(com.starbase.starteam.File SourceFile, String SourceFolderName, String RootFolder) { Item[] FileHistory = SourceFile.getHistory(); for (Item CurrentHistoryItem : FileHistory) { com.starbase.starteam.File CurrentHistoryFile = (File) CurrentHistoryItem; String FullFileName = RootFolder + "/" + FormatOLEDATEToString(CurrentHistoryFile.getModifiedTime()) + "/Files" + SourceFolderName + CurrentHistoryFile.getName(); String FullPath = RootFolder + "/" + FormatOLEDATEToString(CurrentHistoryFile.getModifiedTime()) + "/Files" + SourceFolderName; String HistoryFileName = RootFolder + "/" + FormatOLEDATEToString(CurrentHistoryFile.getModifiedTime()) +"/@History.txt"; System.out.format("FileName = %s; Revision = %d; CreatedTime = %s; Author = %s; Comment = '%s';%n", FullFileName, CurrentHistoryFile.getRevisionNumber() + 1, FormatOLEDATEToString(CurrentHistoryFile.getModifiedTime()), FindAuthorNameById(CurrentHistoryFile.getModifiedBy()), CurrentHistoryFile.getComment()); FileOutputStream fop = null; java.io.File file; try { java.io.File directory = new java.io.File(FullPath); if (!directory.exists()) { directory.mkdirs(); } file = new java.io.File(FullFileName); fop = new FileOutputStream(file); CurrentHistoryFile.checkoutToStream(fop, com.starbase.starteam.Item.LockType.UNCHANGED, false); fop.flush(); fop.close(); java.io.File HistoryFile = new java.io.File(HistoryFileName); if (!HistoryFile.exists()) { PrintWriter out = new PrintWriter(HistoryFileName); out.println("AuthorID: " + CurrentHistoryFile.getModifiedBy()); out.println("AuthorName: " + FindAuthorNameById(CurrentHistoryFile.getModifiedBy())); out.println("TimeStamp: " + FormatOLEDATEToString(CurrentHistoryFile.getModifiedTime())); out.println("Comment: " + CurrentHistoryFile.getComment()); out.close(); } //System.out.println("Done"); } catch (IOException e) { e.printStackTrace(); } finally { try { if (fop != null) { fop.close(); } } catch (IOException e) { e.printStackTrace(); } } } } private static void ExtractFullTreeFromRoot(com.starbase.starteam.Folder SourceFolder, String SourceFolderName, String RootFolder) { ExtractFilesFromFolder(SourceFolder, SourceFolderName, RootFolder); Item[] RootFolders = SourceFolder.getItems("Folder"); for (Item CurrentItem : RootFolders) { Folder CurrentFolder = (Folder)CurrentItem; ExtractFullTreeFromRoot(CurrentFolder, SourceFolderName+CurrentFolder.getPathFragment()+"/", RootFolder); } } private static void ExtractFilesFromFolder(com.starbase.starteam.Folder SourceFolder, String SourceFolderName, String RootFolder) { Item[] RootFiles = SourceFolder.getItems("File"); for (Item CurrentItem : RootFiles) { com.starbase.starteam.File MyFile = (File) CurrentItem; if (SourceFolderName.isEmpty()) { ExtractFileHistory(MyFile, "/", RootFolder); } else { ExtractFileHistory(MyFile, SourceFolderName, RootFolder); } } } private static String FormatOLEDATEToString(OLEDate SourceValue) { DateFormat formatter = new SimpleDateFormat("yyyy.MM.dd.HH.mm"); return formatter.format(SourceValue.createDate()); }
ç§ã®æèŠã§ã¯ãããã§ããŸã£ããæªãçµæã«ã¯ãªããªãã£ãã
ãã®æœåºã¹ããŒã ã䜿çšããŠãçŽ2,000ã®ãªããžã§ã³ãååŸããŸããããããã¯é·ãéç¶ããŠãããããžã§ã¯ãã«ã¯äžååã§ãããããã¯ããã§åãå ¥ããããŠããéçºæ©èœãšãœãããŠã§ã¢èªäœã«ãããã®ã§ãã ãŸããé·ãéãæœåºãããªããžã§ã³ãæ£ãããæ£ããå解ãããŠãããã©ãããæåã§ãã§ãã¯ããŸããã
ä»ã§ã¯ãã¹ãŠãSVNã«æ£ããã³ãããããããšãæ®ã£ãŠãããããã¯ãã§ã«æåã®æ®µéãããå°ãç°¡åã§ãã
SVNã«èšå ¥
SVNã®å¡ãã€ã¶ããã¿ãŒã³ã¯ç°¡åã§ãã
1ïŒãã©ã«ããŒã®å®å šãªãªã¹ããååŸããŠäžŠã¹æ¿ããŸãïŒãã©ã«ããŒã«ååãä»ãããšãããã«åœ¹ç«ã¡ãŸãïŒã
2ïŒæ¬ èœããŠãããã¡ã€ã«ãšãã©ã«ããŒã®ãªã¹ããçŸåšã®ãªããžã§ã³ã®SVNãã©ã«ããŒã«äœæããŸãã
3ïŒFilesãµããã©ã«ããŒã®å 容ãSVNãã©ã«ããŒã«ã³ããŒããŸãã
4ïŒSVNã§æ¬ èœããŠãããã¡ã€ã«ãšãã©ã«ããŒã®å Žåãè¿œå ããŸãã
5ïŒçŸåšã®SVNã®äœæ¥ã³ããŒãã³ãããããŸãã
å®è£ äžã«ãããã€ãã®åé¡ãçºçããŸããã ã€ãŸããã³ããããžã®ã³ã¡ã³ãã§ã¯ãäºéåŒçšç¬Šã®åã«ããã¯ã¹ã©ãã·ã¥ãé 眮ããŠãåŒçšç¬Šãæ£ããåŠçãããããã«ããå¿ èŠããããŸãã ãŸãã@èšå·ãå«ããã¡ã€ã«ãŸãã¯ãã¹ãè¿œå ããå Žåãsvnããã¡ã€ã«åãæ£ããç解ã§ããããã«ãæåŸã«å¥ã®@ãè¿œå ããå¿ èŠããããŸãã ããã§ãã³ãŒããæªåããããšãããããŸãããããã«ããããã£ãããã§ãã
ãã¿ãã¬èŠåºã
//1. - java.io.File dir = new java.io.File("C:/StarTeamToSVN"); java.io.File[] subDirs = dir.listFiles(new FileFilter() { @Override public boolean accept(java.io.File pathname) { return pathname.isDirectory(); } }); //2. Arrays.sort(subDirs); //3. //1. , //2. SVN //3. Files StarTeam SVN //4. SVN //5. java.io.File RootSVN = new java.io.File("C:\\TestASU"); for (java.io.File CurrentDir : subDirs){ try { ArrayList<java.io.File> MyFiles = new ArrayList<>(); String StarTeamSourceFolder = CurrentDir.getAbsolutePath()+"\\Files\\"; listf(StarTeamSourceFolder, MyFiles); ///String[] SVNAddFiles = new String[](); ArrayList<String> SVNAddFiles = new ArrayList<>(); for (java.io.File CurrentFile: MyFiles) { String FullSourcePath = CurrentFile.getAbsolutePath(); String FullDestPath = "C:\\TestASU\\" + FullSourcePath.substring(FullSourcePath.indexOf(StarTeamSourceFolder) + StarTeamSourceFolder.length()) ; // , java.io.File DestFile = new java.io.File(FullDestPath); java.io.File ParentFolder = DestFile.getParentFile(); while ((ParentFolder != null) && (ParentFolder.compareTo(RootSVN) != 0 )) { if (!ParentFolder.exists()) { SVNAddFiles.add(0, ParentFolder.getAbsolutePath()); } ParentFolder = ParentFolder.getParentFile(); } if (!DestFile.exists()) { SVNAddFiles.add(FullDestPath); } } // Set<String> s = new LinkedHashSet<>(SVNAddFiles); // java.io.File RootStarTeam = new java.io.File(StarTeamSourceFolder); try { copyFolder(RootStarTeam, RootSVN); } catch (IOException ex) { Logger.getLogger(StarTeamToSVN.class.getName()).log(Level.SEVERE, null, ex); } Thread.sleep(5000); // / for (String NewItem: s) { SVNAddFile(NewItem, CurrentDir.getName()); } // String HistoryPath = CurrentDir.getAbsolutePath() + "\\@History.txt"; String AuthorUserName = ""; String AuthorPassword = ""; String AuthorComment = ""; try { for (String line : Files.readAllLines(Paths.get(HistoryPath), Charset.defaultCharset())) { if (line.contains("AuthorID")) { String AuthorID = line.substring(line.indexOf(": ")+2); AuthorUserName = FindAuthorUserNameByID(Integer.parseInt(AuthorID)); AuthorPassword = FindAuthorPasswordNameByID(Integer.parseInt(AuthorID)); } if (line.contains("TimeStamp")) { AuthorComment = line.substring(line.indexOf(": ")+2); } if (line.contains("Comment")) { AuthorComment = AuthorComment + "\n" + line.substring(line.indexOf(": ")+2); } if (!line.contains(": ")) { AuthorComment = AuthorComment + "\n" + line; } } } catch (IOException ex) { Logger.getLogger(StarTeamToSVN.class.getName()).log(Level.SEVERE, null, ex); } if ((AuthorUserName == "")||(AuthorPassword == "")) { throw new IOException("Ho Authentification data"); } Thread.sleep(1000); SVNCommit("C:\\TestASU\\", CurrentDir.getName(), AuthorUserName, AuthorPassword, AuthorComment); } catch (InterruptedException ex) { Logger.getLogger(StarTeamToSVN.class.getName()).log(Level.SEVERE, null, ex); } }
ããã«ã¯æéé 延ããããŸã.svnã«ã¯ããŒã¿ããŒã¹ã«ãã¹ãŠãè¿œå ããæéãåžžã«ããããã§ã¯ãªãããã¡ã€ã«ãã¢ã³ããŠã€ã«ã¹ã«ãšã£ãŠèå³æ·±ãããšããããããéžææ¹æ³ã«ãã£ãŠãããã®å€ã«åé¡ã¯ãªãããšãå€æããŸããã svnã§ã¯ãsvn add FOLDERNAMEãå®è¡ãããšãã³ã³ãã³ããå«ããã©ã«ããŒå šäœãè¿œå ãããŸãããããã»ã¹ãããæ£ç¢ºã«å¶åŸ¡ããããã«ããã©ã«ããŒãšãã¡ã€ã«ãåå¥ã«è¿œå ããããæ£ç¢ºãªæ¹æ³ã®ããã«æããŸããã
ãããã«
ãã®èšäºãæžããŠããéãç§ã®ãããžã§ã¯ãã¯å®å šã«ç§»è¡ããŸããã ITå°é家ãå€ããã¯ãããžãŒã䜿çšãããŠããå Žæã«è¡ãããšã¯çãããªãã圌ããããçŸä»£çãªãã®ã«åãæ¿ããããšæã£ãŠããããšãç¥ã£ãŠããã®ã§ãgithubã«ç§ã®ãããžã§ã¯ããæçš¿ããŸããã ããã«ãããžã§ã¯ããžã®ãªã³ã¯ããããŸã ã
ãŸããJavaããã°ã©ãã³ã°ã®çµéšãç©ãã ã ç¹å®ã®ãããžã§ã¯ãçšã«ã³ãŒããå€æŽããå¿ èŠããããŸãããå®å šã«æ©èœããæå°éã®æ¹åãå¿ èŠã§ãã ãŸããç°ãªãããŒãžã§ã³ã®SDKã䜿çšããããŒãžã§ã³ã«ç§»è¡ããããç¹å®ã®ããŒãžã§ã³ã®SDKã«åãããŠã³ãŒãã調æŽãããããããšãã§ããŸãã
誰ãããã®èšäºãå°æ¥åœ¹ã«ç«ã€ãšæãããšãé¡ã£ãŠããŸãã