From 8daefa09d99774639a355c0dfa2b989fa1007f5f Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 11 Oct 2012 17:11:18 -0400
Subject: [PATCH] Created static repository close functions for unit testing and fixed Windows sharing violations
---
src/com/gitblit/models/RepositoryModel.java | 35 ++++++++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/models/RepositoryModel.java b/src/com/gitblit/models/RepositoryModel.java
index 44aba1d..914523d 100644
--- a/src/com/gitblit/models/RepositoryModel.java
+++ b/src/com/gitblit/models/RepositoryModel.java
@@ -88,7 +88,8 @@
this.accessRestriction = AccessRestrictionType.NONE;
this.authorizationControl = AuthorizationControl.NAMED;
this.federationSets = new ArrayList<String>();
- this.federationStrategy = FederationStrategy.FEDERATE_THIS;
+ this.federationStrategy = FederationStrategy.FEDERATE_THIS;
+ this.projectPath = StringUtils.getFirstPathElement(name);
}
public List<String> getLocalBranches() {
@@ -121,6 +122,19 @@
public void resetDisplayName() {
displayName = null;
}
+
+ @Override
+ public int hashCode() {
+ return name.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof RepositoryModel) {
+ return name.equals(((RepositoryModel) o).name);
+ }
+ return false;
+ }
@Override
public String toString() {
@@ -135,6 +149,14 @@
return StringUtils.compareRepositoryNames(name, o.name);
}
+ public boolean isFork() {
+ return !StringUtils.isEmpty(originRepository);
+ }
+
+ public boolean isOwner(String username) {
+ return owner != null && username != null && owner.equalsIgnoreCase(username);
+ }
+
public boolean isPersonalRepository() {
return !StringUtils.isEmpty(projectPath) && projectPath.charAt(0) == '~';
}
@@ -143,12 +165,19 @@
return !StringUtils.isEmpty(projectPath) && projectPath.equalsIgnoreCase("~" + username);
}
+ public boolean allowAnonymousView() {
+ return !accessRestriction.atLeast(AccessRestrictionType.VIEW);
+ }
+
public RepositoryModel cloneAs(String cloneName) {
RepositoryModel clone = new RepositoryModel();
+ clone.originRepository = name;
clone.name = cloneName;
+ clone.projectPath = StringUtils.getFirstPathElement(cloneName);
+ clone.isBare = true;
clone.description = description;
- clone.accessRestriction = accessRestriction;
- clone.authorizationControl = authorizationControl;
+ clone.accessRestriction = AccessRestrictionType.PUSH;
+ clone.authorizationControl = AuthorizationControl.NAMED;
clone.federationStrategy = federationStrategy;
clone.showReadme = showReadme;
clone.showRemoteBranches = false;
--
Gitblit v1.9.1