public class RefSpec extends Object implements Serializable
A ref specification provides matching support and limited rules to rewrite a reference in one repository to another reference in another repository.
Modifier and Type | Class and Description |
---|---|
static class |
RefSpec.WildcardMode
How strict to be about wildcards.
|
Modifier and Type | Field and Description |
---|---|
static String |
WILDCARD_SUFFIX
Suffix for wildcard ref spec component, that indicate matching all refs
with specified prefix.
|
Constructor and Description |
---|
RefSpec()
Construct an empty RefSpec.
|
RefSpec(String spec)
Parse a ref specification for use during transport operations.
|
RefSpec(String spec,
RefSpec.WildcardMode mode)
Parse a ref specification for use during transport operations.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj) |
RefSpec |
expandFromDestination(Ref r)
Expand this specification to exactly match a ref.
|
RefSpec |
expandFromDestination(String r)
Expand this specification to exactly match a ref name.
|
RefSpec |
expandFromSource(Ref r)
Expand this specification to exactly match a ref.
|
RefSpec |
expandFromSource(String r)
Expand this specification to exactly match a ref name.
|
String |
getDestination()
Get the destination ref description.
|
String |
getSource()
Get the source ref description.
|
int |
hashCode() |
boolean |
isForceUpdate()
Check if this specification wants to forcefully update the destination.
|
boolean |
isWildcard()
Check if this specification is actually a wildcard pattern.
|
static boolean |
isWildcard(String s)
Check whether provided string is a wildcard ref spec component.
|
boolean |
matchDestination(Ref r)
Does this specification's destination description match the ref?
|
boolean |
matchDestination(String r)
Does this specification's destination description match the ref name?
|
boolean |
matchSource(Ref r)
Does this specification's source description match the ref?
|
boolean |
matchSource(String r)
Does this specification's source description match the ref name?
|
RefSpec |
setDestination(String destination)
Create a new RefSpec with a different destination name setting.
|
RefSpec |
setForceUpdate(boolean forceUpdate)
Create a new RefSpec with a different force update setting.
|
RefSpec |
setSource(String source)
Create a new RefSpec with a different source name setting.
|
RefSpec |
setSourceDestination(String source,
String destination)
Create a new RefSpec with a different source/destination name setting.
|
String |
toString() |
public static final String WILDCARD_SUFFIX
public RefSpec()
A newly created empty RefSpec is not suitable for use in most applications, as at least one field must be set to match a source name.
public RefSpec(String spec, RefSpec.WildcardMode mode)
Specifications are typically one of the following forms:
refs/heads/master
refs/heads/master:refs/remotes/origin/master
refs/heads/*:refs/remotes/origin/*
+refs/heads/master
+refs/heads/master:refs/remotes/origin/master
+refs/heads/*:refs/remotes/origin/*
+refs/pull/*/head:refs/remotes/origin/pr/*
:refs/heads/master
refs/heads/*
refs/heads/*:refs/heads/master
spec
- string describing the specification.mode
- whether to allow a wildcard on one side without a wildcard on
the other.IllegalArgumentException
- the specification is invalid.public RefSpec(String spec)
Specifications are typically one of the following forms:
refs/heads/master
refs/heads/master:refs/remotes/origin/master
refs/heads/*:refs/remotes/origin/*
+refs/heads/master
+refs/heads/master:refs/remotes/origin/master
+refs/heads/*:refs/remotes/origin/*
+refs/pull/*/head:refs/remotes/origin/pr/*
:refs/heads/master
spec
- string describing the specification.IllegalArgumentException
- the specification is invalid.public static boolean isWildcard(String s)
s
- ref spec component - string to test. Can be null.public boolean isForceUpdate()
public RefSpec setForceUpdate(boolean forceUpdate)
forceUpdate
- new value for force update in the returned instance.public boolean isWildcard()
If this is a wildcard pattern then the source and destination names
returned by getSource()
and getDestination()
will not
be actual ref names, but instead will be patterns.
public String getSource()
During a fetch this is the name of the ref on the remote repository we are fetching from. During a push this is the name of the ref on the local repository we are pushing out from.
public RefSpec setSource(String source)
source
- new value for source in the returned instance.IllegalStateException
- There is already a destination configured, and the wildcard
status of the existing destination disagrees with the
wildcard status of the new source.public String getDestination()
During a fetch this is the local tracking branch that will be updated with the new ObjectId after fetching is complete. During a push this is the remote ref that will be updated by the remote's receive-pack process.
If null during a fetch no tracking branch should be updated and the ObjectId should be stored transiently in order to prepare a merge.
If null during a push, use getSource()
instead.
public RefSpec setDestination(String destination)
destination
- new value for destination in the returned instance.IllegalStateException
- There is already a source configured, and the wildcard status
of the existing source disagrees with the wildcard status of
the new destination.public RefSpec setSourceDestination(String source, String destination)
source
- new value for source in the returned instance.destination
- new value for destination in the returned instance.IllegalArgumentException
- The wildcard status of the new source disagrees with the
wildcard status of the new destination.public boolean matchSource(String r)
r
- ref name that should be tested.public boolean matchSource(Ref r)
r
- ref whose name should be tested.public boolean matchDestination(String r)
r
- ref name that should be tested.public boolean matchDestination(Ref r)
r
- ref whose name should be tested.public RefSpec expandFromSource(String r)
Callers must first verify the passed ref name matches this specification, otherwise expansion results may be unpredictable.
r
- a ref name that matched our source specification. Could be a
wildcard also.IllegalStateException
- when the RefSpec was constructed with wildcard mode that
doesn't require matching wildcards.public RefSpec expandFromSource(Ref r)
Callers must first verify the passed ref matches this specification, otherwise expansion results may be unpredictable.
r
- a ref that matched our source specification. Could be a
wildcard also.IllegalStateException
- when the RefSpec was constructed with wildcard mode that
doesn't require matching wildcards.public RefSpec expandFromDestination(String r)
Callers must first verify the passed ref name matches this specification, otherwise expansion results may be unpredictable.
r
- a ref name that matched our destination specification. Could
be a wildcard also.IllegalStateException
- when the RefSpec was constructed with wildcard mode that
doesn't require matching wildcards.public RefSpec expandFromDestination(Ref r)
Callers must first verify the passed ref matches this specification, otherwise expansion results may be unpredictable.
r
- a ref that matched our destination specification.IllegalStateException
- when the RefSpec was constructed with wildcard mode that
doesn't require matching wildcards.Copyright © 2020 Eclipse JGit Project. All rights reserved.