/* * (non-Javadoc) * * @see * org.eclipse.jgit.http.server.glue.MetaServlet#service(javax.servlet.http * .HttpServletRequest, javax.servlet.http.HttpServletResponse) */ @Override protected void service(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { String name = req.getPathInfo(); while (name != null && 0 < name.length() && name.charAt(0) == '/') name = name.substring(1); if (name == null || name.length() == 0) { sendError(req, res, SC_NOT_FOUND); return; } this.log.debug("git server for " + name); name = name.replaceAll("\\.git.*$", ""); AutoMerge am = SyncMgr.smgr().amerge(name); if (am != null) { if (SyncMgr.smgr().isSync2Remoete()) { try { am.pullR2L(); } catch (Exception e) { e.printStackTrace(); } } if (am.isConflict()) { sendError(req, res, SC_INTERNAL_SERVER_ERROR, "repository conflicting..."); return; } } // System.out.println(req.getPathInfo()); super.service(req, res); if (GitSmartHttpTools.isReceivePack(req) && am != null && SyncMgr.smgr().isSync2Remoete()) { try { log.debug("check git log and sync local to remote"); String result = am.checkLogAndL2R(); log.debug("checkLogAndL2R:" + result); } catch (Exception e) { log.warn("checkLogAndL2R error", e); } } }