Browse Source

Add links to commit diff and blob diff pages to toggle whitespace setting

tags/v1.7.0
James Moger 9 years ago
parent
commit
5d59b9ba32

+ 14
- 6
src/main/java/com/gitblit/utils/DiffUtils.java View File

@@ -92,11 +92,11 @@ public class DiffUtils {
* Enumeration for the diff comparator types.
*/
public static enum DiffComparator {
DEFAULT(RawTextComparator.DEFAULT),
WS_IGNORE_ALL(RawTextComparator.WS_IGNORE_ALL),
WS_IGNORE_LEADING(RawTextComparator.WS_IGNORE_LEADING),
WS_IGNORE_TRAILING(RawTextComparator.WS_IGNORE_TRAILING),
WS_IGNORE_CHANGE(RawTextComparator.WS_IGNORE_CHANGE);
SHOW_WHITESPACE(RawTextComparator.DEFAULT),
IGNORE_WHITESPACE(RawTextComparator.WS_IGNORE_ALL),
IGNORE_LEADING(RawTextComparator.WS_IGNORE_LEADING),
IGNORE_TRAILING(RawTextComparator.WS_IGNORE_TRAILING),
IGNORE_CHANGES(RawTextComparator.WS_IGNORE_CHANGE);
public final RawTextComparator textComparator;
@@ -104,6 +104,14 @@ public class DiffUtils {
this.textComparator = textComparator;
}
public DiffComparator getOpposite() {
return this == SHOW_WHITESPACE ? IGNORE_WHITESPACE : SHOW_WHITESPACE;
}
public String getTranslationKey() {
return "gb." + name().toLowerCase();
}
public static DiffComparator forName(String name) {
for (DiffComparator type : values()) {
if (type.name().equalsIgnoreCase(name)) {
@@ -371,7 +379,7 @@ public class DiffUtils {
break;
}
df.setRepository(repository);
df.setDiffComparator((comparator == null ? DiffComparator.DEFAULT : comparator).textComparator);
df.setDiffComparator((comparator == null ? DiffComparator.SHOW_WHITESPACE : comparator).textComparator);
df.setDetectRenames(true);
RevTree commitTree = commit.getTree();

+ 3
- 1
src/main/java/com/gitblit/wicket/GitBlitWebApp.properties View File

@@ -761,4 +761,6 @@ gb.opacityAdjust = Adjust opacity
gb.blinkComparator = Blink comparator
gb.imgdiffSubtract = Subtract (black = identical)
gb.deleteRepositoryHeader = Delete Repository
gb.deleteRepositoryDescription = Deleted repositories will be unrecoverable.
gb.deleteRepositoryDescription = Deleted repositories will be unrecoverable.
gb.show_whitespace = show whitespace
gb.ignore_whitespace = ignore whitespace

+ 25
- 0
src/main/java/com/gitblit/wicket/WicketUtils.java View File

@@ -331,6 +331,31 @@ public class WicketUtils {
return new PageParameters(parameterMap);
}
public static PageParameters newDiffParameter(String repositoryName,
String objectId, DiffComparator diffComparator) {
Map<String, String> parameterMap = new HashMap<String, String>();
if (StringUtils.isEmpty(objectId)) {
return newRepositoryParameter(repositoryName);
}
parameterMap.put("r", repositoryName);
parameterMap.put("h", objectId);
parameterMap.put("w", "" + diffComparator.ordinal());
return new PageParameters(parameterMap);
}
public static PageParameters newDiffParameter(String repositoryName,
String objectId, DiffComparator diffComparator, String blobPath) {
Map<String, String> parameterMap = new HashMap<String, String>();
if (StringUtils.isEmpty(objectId)) {
return newRepositoryParameter(repositoryName);
}
parameterMap.put("r", repositoryName);
parameterMap.put("h", objectId);
parameterMap.put("w", "" + diffComparator.ordinal());
parameterMap.put("f", blobPath);
return new PageParameters(parameterMap);
}
public static PageParameters newRangeParameter(String repositoryName,
String startRange, String endRange) {
Map<String, String> parameterMap = new HashMap<String, String>();

+ 1
- 1
src/main/java/com/gitblit/wicket/pages/BlobDiffPage.html View File

@@ -9,7 +9,7 @@
<!-- blob nav links -->
<div class="page_nav2">
<a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a>
<a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a> | <a wicket:id="whitespaceLink"></a>
</div>
<!-- commit header -->

+ 3
- 0
src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java View File

@@ -33,6 +33,7 @@ import com.gitblit.wicket.CacheControl;
import com.gitblit.wicket.CacheControl.LastModified;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.CommitHeaderPanel;
import com.gitblit.wicket.panels.LinkPanel;
import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
@CacheControl(LastModified.BOOT)
@@ -80,6 +81,8 @@ public class BlobDiffPage extends RepositoryPage {
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new BookmarkablePageLink<Void>("commitDiffLink", CommitDiffPage.class,
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()),
BlobDiffPage.class, WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite(), blobPath)));
// diff page links
add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,

+ 1
- 1
src/main/java/com/gitblit/wicket/pages/CommitDiffPage.html View File

@@ -9,7 +9,7 @@
<!-- commitdiff nav links -->
<div class="page_nav2">
<wicket:message key="gb.parent"></wicket:message>: <span wicket:id="parentLink">[parent link]</span> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a>
<wicket:message key="gb.parent"></wicket:message>: <span wicket:id="parentLink">[parent link]</span> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="whitespaceLink"></a>
</div>
<!-- commit header -->

+ 5
- 4
src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java View File

@@ -57,9 +57,9 @@ public class CommitDiffPage extends RepositoryPage {
public CommitDiffPage(PageParameters params) {
super(params);

Repository r = getRepository();
RevCommit commit = getCommit();
final Repository r = getRepository();
final RevCommit commit = getCommit();
final DiffComparator diffComparator = WicketUtils.getDiffComparator(params);

List<String> parents = new ArrayList<String>();
if (commit.getParentCount() > 0) {
@@ -79,6 +79,8 @@ public class CommitDiffPage extends RepositoryPage {
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class,
WicketUtils.newObjectParameter(repositoryName, objectId)));
add(new LinkPanel("whitespaceLink", null, getString(diffComparator.getOpposite().getTranslationKey()),
CommitDiffPage.class, WicketUtils.newDiffParameter(repositoryName, objectId, diffComparator.getOpposite())));

add(new CommitHeaderPanel("commitHeader", repositoryName, commit));

@@ -86,7 +88,6 @@ public class CommitDiffPage extends RepositoryPage {
final ImageDiffHandler handler = new ImageDiffHandler(this, repositoryName,
parents.isEmpty() ? null : parents.get(0), commit.getName(), imageExtensions);

final DiffComparator diffComparator = WicketUtils.getDiffComparator(params);
final DiffOutput diff = DiffUtils.getCommitDiff(r, commit, diffComparator, DiffOutputType.HTML, handler);
if (handler.getImgDiffCount() > 0) {
addBottomScript("scripts/imgdiff.js"); // Tiny support script for image diffs

+ 3
- 3
src/test/java/com/gitblit/tests/DiffUtilsTest.java View File

@@ -41,7 +41,7 @@ public class DiffUtilsTest extends GitblitUnitTest {
Repository repository = GitBlitSuite.getHelloworldRepository();
RevCommit commit = JGitUtils.getCommit(repository,
"1d0c2933a4ae69c362f76797d42d6bd182d05176");
String diff = DiffUtils.getCommitDiff(repository, commit, DiffComparator.DEFAULT, DiffOutputType.PLAIN).content;
String diff = DiffUtils.getCommitDiff(repository, commit, DiffComparator.SHOW_WHITESPACE, DiffOutputType.PLAIN).content;
repository.close();
assertTrue(diff != null && diff.length() > 0);
String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
@@ -55,7 +55,7 @@ public class DiffUtilsTest extends GitblitUnitTest {
"8baf6a833b5579384d9b9ceb8a16b5d0ea2ec4ca");
RevCommit commit = JGitUtils.getCommit(repository,
"1d0c2933a4ae69c362f76797d42d6bd182d05176");
String diff = DiffUtils.getDiff(repository, baseCommit, commit, DiffComparator.DEFAULT, DiffOutputType.PLAIN).content;
String diff = DiffUtils.getDiff(repository, baseCommit, commit, DiffComparator.SHOW_WHITESPACE, DiffOutputType.PLAIN).content;
repository.close();
assertTrue(diff != null && diff.length() > 0);
String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";
@@ -67,7 +67,7 @@ public class DiffUtilsTest extends GitblitUnitTest {
Repository repository = GitBlitSuite.getHelloworldRepository();
RevCommit commit = JGitUtils.getCommit(repository,
"1d0c2933a4ae69c362f76797d42d6bd182d05176");
String diff = DiffUtils.getDiff(repository, commit, "java.java", DiffComparator.DEFAULT, DiffOutputType.PLAIN).content;
String diff = DiffUtils.getDiff(repository, commit, "java.java", DiffComparator.SHOW_WHITESPACE, DiffOutputType.PLAIN).content;
repository.close();
assertTrue(diff != null && diff.length() > 0);
String expected = "- system.out.println(\"Hello World\");\n+ System.out.println(\"Hello World\"";

Loading…
Cancel
Save