List of usage examples for org.eclipse.jgit.transport TrackingRefUpdate getRemoteName
public String getRemoteName()
From source file:com.gitblit.service.MirrorService.java
License:Apache License
@Override public void run() { if (!isReady()) { return;//from ww w . j a va 2 s . com } running.set(true); for (String repositoryName : repositoryManager.getRepositoryList()) { if (forceClose.get()) { break; } if (repositoryManager.isCollectingGarbage(repositoryName)) { logger.debug("mirror is skipping {} garbagecollection", repositoryName); continue; } RepositoryModel model = null; Repository repository = null; try { model = repositoryManager.getRepositoryModel(repositoryName); if (!model.isMirror && !model.isBare) { // repository must be a valid bare git mirror logger.debug("mirror is skipping {} !mirror !bare", repositoryName); continue; } repository = repositoryManager.getRepository(repositoryName); if (repository == null) { logger.warn( MessageFormat.format("MirrorExecutor is missing repository {0}?!?", repositoryName)); continue; } // automatically repair (some) invalid fetch ref specs if (!repairAttempted.contains(repositoryName)) { repairAttempted.add(repositoryName); JGitUtils.repairFetchSpecs(repository); } // find the first mirror remote - there should only be one StoredConfig rc = repository.getConfig(); RemoteConfig mirror = null; List<RemoteConfig> configs = RemoteConfig.getAllRemoteConfigs(rc); for (RemoteConfig config : configs) { if (config.isMirror()) { mirror = config; break; } } if (mirror == null) { // repository does not have a mirror remote logger.debug("mirror is skipping {} no mirror remote found", repositoryName); continue; } logger.debug("checking {} remote {} for ref updates", repositoryName, mirror.getName()); final boolean testing = false; Git git = new Git(repository); FetchResult result = git.fetch().setRemote(mirror.getName()).setDryRun(testing).call(); Collection<TrackingRefUpdate> refUpdates = result.getTrackingRefUpdates(); if (refUpdates.size() > 0) { ReceiveCommand ticketBranchCmd = null; for (TrackingRefUpdate ru : refUpdates) { StringBuilder sb = new StringBuilder(); sb.append("updated mirror "); sb.append(repositoryName); sb.append(" "); sb.append(ru.getRemoteName()); sb.append(" -> "); sb.append(ru.getLocalName()); if (ru.getResult() == Result.FORCED) { sb.append(" (forced)"); } sb.append(" "); sb.append(ru.getOldObjectId() == null ? "" : ru.getOldObjectId().abbreviate(7).name()); sb.append(".."); sb.append(ru.getNewObjectId() == null ? "" : ru.getNewObjectId().abbreviate(7).name()); logger.info(sb.toString()); if (BranchTicketService.BRANCH.equals(ru.getLocalName())) { ReceiveCommand.Type type = null; switch (ru.getResult()) { case NEW: type = Type.CREATE; break; case FAST_FORWARD: type = Type.UPDATE; break; case FORCED: type = Type.UPDATE_NONFASTFORWARD; break; default: type = null; break; } if (type != null) { ticketBranchCmd = new ReceiveCommand(ru.getOldObjectId(), ru.getNewObjectId(), ru.getLocalName(), type); } } } if (ticketBranchCmd != null) { repository.fireEvent(new ReceiveCommandEvent(model, ticketBranchCmd)); } } } catch (Exception e) { logger.error("Error updating mirror " + repositoryName, e); } finally { // cleanup if (repository != null) { repository.close(); } } } running.set(false); }
From source file:jbyoshi.gitupdate.processor.Fetch.java
License:Apache License
@Override public void process(Repository repo, Git git, String remote, String fullRemote, Report report) throws GitAPIException, IOException { FetchResult result = git.fetch().setRemoveDeletedRefs(true).setCredentialsProvider(Prompts.INSTANCE) .setRemote(remote).call();/*from w w w .j a v a 2s .c o m*/ for (TrackingRefUpdate update : result.getTrackingRefUpdates()) { if (update.getRemoteName().equals(Constants.R_HEADS + Constants.HEAD)) { continue; } StringBuilder text = new StringBuilder(Utils.getShortBranch(update.getRemoteName())).append(": "); String oldId = update.getOldObjectId().name(); if (update.getOldObjectId().equals(ObjectId.zeroId())) { oldId = "new branch"; } String newId = update.getNewObjectId().name(); if (update.getNewObjectId().equals(ObjectId.zeroId())) { newId = "deleted"; for (String branch : Utils.getLocalBranches(repo).keySet()) { if (update.getLocalName() .equals(new BranchConfig(repo.getConfig(), branch).getRemoteTrackingBranch())) { repo.getConfig().unset("branches", branch, "remote"); repo.getConfig().save(); } } } text.append(oldId).append(" -> ").append(newId); report.newChild(text.toString()).modified(); } }
From source file:jetbrains.buildServer.buildTriggers.vcs.git.Fetcher.java
License:Apache License
private static void logFetchResults(@NotNull FetchResult result) { for (TrackingRefUpdate update : result.getTrackingRefUpdates()) { StringBuilder msg = new StringBuilder(); msg.append("update ref remote name: ").append(update.getRemoteName()).append(", local name: ") .append(update.getLocalName()).append(", old object id: ") .append(update.getOldObjectId().name()).append(", new object id: ") .append(update.getNewObjectId().name()).append(", result: ").append(update.getResult()); System.out.println(msg);//from w ww . j a v a 2 s . c om } String additionalMsgs = result.getMessages(); if (additionalMsgs.length() > 0) { System.out.println("Remote process messages: " + additionalMsgs); } }
From source file:net.erdfelt.android.sdkfido.git.internal.GitInfo.java
License:Apache License
public static void infoFetchResults(Repository db, FetchResult result) throws IOException { boolean headerDisplayed = false; for (TrackingRefUpdate update : result.getTrackingRefUpdates()) { if (update.getResult() == RefUpdate.Result.NO_CHANGE) { // skip if not changed continue; }/* w ww .j a va 2 s .c o m*/ char idChar = asIdChar(update.getResult()); String idLong = asIdLong(db, update); String remoteRef = abbreviateRef(update.getRemoteName()); String localRef = abbreviateRef(update.getLocalName()); if (!headerDisplayed) { System.out.printf("Fetch Results from URI: %s%n", result.getURI()); headerDisplayed = true; } System.out.printf(" %c %-20s %-18s > %s%n", idChar, idLong, remoteRef, localRef); } // Now show any remote messages StringReader reader = null; BufferedReader buf = null; try { reader = new StringReader(result.getMessages()); buf = new BufferedReader(reader); String line; while ((line = buf.readLine()) != null) { System.out.printf("[remote] %s%n", line); } } finally { IOUtils.closeQuietly(buf); IOUtils.closeQuietly(reader); } }
From source file:net.erdfelt.android.sdkfido.git.internal.GitInfo.java
License:Apache License
public static String asIdLong(Repository db, TrackingRefUpdate update) { RefUpdate.Result result = update.getResult(); // Fast IDs//from www . jav a2 s . c om switch (result) { case LOCK_FAILURE: return "[lock failure]"; case IO_FAILURE: return "[i/o error]"; case REJECTED: return "[rejected]"; } // Deleted Check Next if (ObjectId.zeroId().equals(update.getNewObjectId())) { return "[deleted]"; } // All other results switch (result) { case NEW: if (update.getRemoteName().startsWith(Constants.R_HEADS)) { return "[new branch]"; } if (update.getLocalName().startsWith(Constants.R_TAGS)) { return "[new tag]"; } return "[new]"; case FORCED: { String oldOID = update.getOldObjectId().abbreviate(ABBREV_LEN).name(); String newOID = update.getNewObjectId().abbreviate(ABBREV_LEN).name(); return oldOID + "..." + newOID; } case FAST_FORWARD: { String oldOID = update.getOldObjectId().abbreviate(ABBREV_LEN).name(); String newOID = update.getNewObjectId().abbreviate(ABBREV_LEN).name(); return oldOID + ".." + newOID; } case NO_CHANGE: return "[up to date]"; default: return "[" + result.name() + "]"; } }
From source file:net.mobid.codetraq.runnables.GitChecker.java
License:Open Source License
private void showFetchResult(final FetchResult r, boolean logOnly) { ObjectReader reader = repo.newObjectReader(); PrintWriter out = new PrintWriter(System.out); try {/*from w w w . j a va2 s.c om*/ boolean shownURI = false; for (final TrackingRefUpdate u : r.getTrackingRefUpdates()) { if (u.getResult() == RefUpdate.Result.NO_CHANGE) { continue; } final char type = shortTypeOf(u.getResult()); final String longType = longTypeOf(reader, u); final String src = abbreviateRef(u.getRemoteName(), false); final String dst = abbreviateRef(u.getLocalName(), true); if (!shownURI) { out.println("jGIT::from " + r.getURI()); shownURI = true; } if (!logOnly) { out.format(" %c %-17s %-10s -> %s", type, longType, src, dst); out.println(); } } } finally { reader.release(); } showRemoteMessages(r.getMessages()); }
From source file:net.mobid.codetraq.runnables.GitChecker.java
License:Open Source License
private String longTypeOf(ObjectReader reader, final TrackingRefUpdate u) { final RefUpdate.Result r = u.getResult(); if (r == RefUpdate.Result.LOCK_FAILURE) return "[lock fail]"; if (r == RefUpdate.Result.IO_FAILURE) return "[i/o error]"; if (r == RefUpdate.Result.REJECTED) return "[rejected]"; if (ObjectId.zeroId().equals(u.getNewObjectId())) return "[deleted]"; if (r == RefUpdate.Result.NEW) { if (u.getRemoteName().startsWith(Constants.R_HEADS)) return "[new branch]"; else if (u.getLocalName().startsWith(Constants.R_TAGS)) return "[new tag]"; return "[new]"; }// ww w . j a va2s. c om if (r == RefUpdate.Result.FORCED) { final String aOld = safeAbbreviate(reader, u.getOldObjectId()); final String aNew = safeAbbreviate(reader, u.getNewObjectId()); return aOld + "..." + aNew; } if (r == RefUpdate.Result.FAST_FORWARD) { final String aOld = safeAbbreviate(reader, u.getOldObjectId()); final String aNew = safeAbbreviate(reader, u.getNewObjectId()); return aOld + ".." + aNew; } if (r == RefUpdate.Result.NO_CHANGE) return "[up to date]"; return "[" + r.name() + "]"; }
From source file:org.commonjava.gitwrap.BareGitRepositoryTest.java
License:Open Source License
@Test public void cloneBare_NoBranch() throws IOException, GitWrapException, URISyntaxException { final File gitDir = new File(".git"); if (gitDir.exists()) { final FileRepositoryBuilder builder = new FileRepositoryBuilder(); builder.setGitDir(gitDir);/*from w w w . j a v a 2s . com*/ builder.setup(); final FileRepository repository = new FileRepository(builder); final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin"); testGitDir = File.createTempFile("git-clone.", ".git"); testGitDir.delete(); BareGitRepository.setProgressMonitor(new TextProgressMonitor()); final BareGitRepository clone = BareGitRepository.cloneBare(config.getURIs().get(0).toString(), "origin", testGitDir); System.out.println(clone.getGitDir()); System.out.println(); final FetchResult fetchResult = clone.getLatestFetchResult(); for (final Ref ref : fetchResult.getAdvertisedRefs()) { System.out.println(ref.getName()); } System.out.println(); for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) { System.out.println(update.getLocalName() + " -> " + update.getRemoteName()); } } }
From source file:org.commonjava.gitwrap.GitRepositoryTest.java
License:Open Source License
@Test public void cloneNonBare_NoBranch() throws IOException, GitWrapException, URISyntaxException { final File gitDir = new File(".git"); if (gitDir.exists()) { final FileRepositoryBuilder builder = new FileRepositoryBuilder(); builder.setGitDir(gitDir);//from ww w . j a va 2 s . c o m builder.setup(); final FileRepository repository = new FileRepository(builder); final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin"); final File workDir = File.createTempFile("git-clone", ""); workDir.delete(); final File newGitDir = new File(workDir, ".git"); GitRepository.setProgressMonitor(new TextProgressMonitor()); final GitRepository clone = GitRepository.cloneWithWorkdir(config.getURIs().get(0).toString(), "origin", newGitDir, false); System.out.println(clone.getGitDir()); System.out.println(); final FetchResult fetchResult = clone.getLatestFetchResult(); for (final Ref ref : fetchResult.getAdvertisedRefs()) { System.out.println(ref.getName()); } System.out.println(); for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) { System.out.println(update.getLocalName() + " -> " + update.getRemoteName()); } } }
From source file:org.commonjava.gitwrap.GitRepositoryTest.java
License:Open Source License
@Test public void cloneNonBare_BranchMasterToNakedRefname() throws IOException, GitWrapException, URISyntaxException { final File gitDir = new File(".git"); if (gitDir.exists()) { final FileRepositoryBuilder builder = new FileRepositoryBuilder(); builder.setGitDir(gitDir);/*from w w w.j a va2s .c om*/ builder.setup(); final FileRepository repository = new FileRepository(builder); final RemoteConfig config = new RemoteConfig(repository.getConfig(), "origin"); workDir = File.createTempFile("git-clone", ""); workDir.delete(); final File newGitDir = new File(workDir, ".git"); GitRepository.setProgressMonitor(new TextProgressMonitor()); final GitRepository clone = GitRepository.cloneWithWorkdir(config.getURIs().get(0).toString(), "origin", newGitDir, false); clone.createBranch(Constants.HEAD, "test-branch"); System.out.println(clone.getGitDir()); System.out.println(); final FetchResult fetchResult = clone.getLatestFetchResult(); for (final Ref ref : fetchResult.getAdvertisedRefs()) { System.out.println(ref.getName()); } System.out.println(); for (final TrackingRefUpdate update : fetchResult.getTrackingRefUpdates()) { System.out.println(update.getLocalName() + " -> " + update.getRemoteName()); } } }