[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [egit-dev] Query on getting information of the list of files commited
|
i use something like that (copy & pasted together, so it won't compile, i'm sure ;)):
/**
* Retrieve a list of all changed files in a commit (based on a event).
*/
public Map<String, FileMode> getChangedFiles(String commit) {
Map<String, FileMode> result = new TreeMap<String, FileMode>();
try {
TreeWalk walk = createTreeWalk(getCommit(commit));
while (walk.next()) {
result.put(walk.getPathString(), walk.getFileMode(1));
}
} catch (Exception ex) {
log.error("failed to get files for " + e, ex);
}
return result;
}
/**
* Create a new TreeWalk which can be used to find file-related info for a given commit
*/
public TreeWalk createTreeWalk(RevCommit commit) throws Exception {
if (commit.getParentCount() != 1) {
throw new IllegalStateException("commit " + commit + " has not exactly one parent!");
}
// since the actual commit is added as second tree, from now on, index '1' refers to the
// actual commit.
TreeWalk walk = new TreeWalk(repo);
walk.setFilter(TreeFilter.ANY_DIFF);
walk.reset(commit.getParent(0).getTree(), commit.getTree());
walk.setRecursive(true);
return walk;
}
/**
* Retrieves the commit object for the given rev string.
*/
public RevCommit getCommit(String rev) {
try {
RevCommit ours = walk.parseCommit(getOidForRev(rev));
// and as an extension, parse direct parents too. this is so the message is accessible later.
for (RevCommit c : ours.getParents()) {
walk.parseCommit(c);
}
return ours;
} catch (Exception ex) {
log.error("cannot find commit with id " + rev, ex);
return null;
}
}
i'm sure i missed something, but that should give an idea ;) (and: all you real experts, please feel free to correct my code :D)
Regards,
Markus
On 07/09/2012 02:47 PM, Rahul Chandrashekar (RBEI/EMT2) wrote:
> Dear All,
>
> I have a query, how do i get the list of files from eGit which are commited into the GIT repository.
>
> Please let know your feedback for the same.
>
> Mit freundlichen Grüßen / Best Regards,
> *Rahul Chandrashekar*
>
> Robert Bosch Engineering and Business Solutions Limited
> Engineering Methods and Tools (RBEI\EMT2)
> 123, Industrial Layout, Hosur Road, Koramangala,
> Bangalore – 560 095
> INDIA
> _www.bosch.com_ <http://www.bosch.com/>
>
> Tel. +91 80 6657 1661
> VoIp. +49(711)811-3615170
> Mobile +91 9886944213
> _rahul.chandrashekar@in.bosch.com_
>
>
>
>
>
> _______________________________________________
> egit-dev mailing list
> egit-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/egit-dev
>