@@ -6,7 +6,7 @@ use turbopath::AnchoredSystemPathBuf;
6
6
7
7
#[ derive( Debug , Default , PartialEq ) ]
8
8
pub struct GitRange {
9
- pub from_ref : String ,
9
+ pub from_ref : Option < String > ,
10
10
pub to_ref : Option < String > ,
11
11
pub include_uncommitted : bool ,
12
12
// Allow unknown objects to be included in the range, without returning an error.
@@ -155,7 +155,7 @@ impl FromStr for TargetSelector {
155
155
) ) ;
156
156
}
157
157
GitRange {
158
- from_ref : a. to_string ( ) ,
158
+ from_ref : Some ( a. to_string ( ) ) ,
159
159
to_ref : Some ( b. to_string ( ) ) ,
160
160
include_uncommitted : false ,
161
161
allow_unknown_objects : false ,
@@ -164,7 +164,7 @@ impl FromStr for TargetSelector {
164
164
// If only the start of the range is specified, we assume that
165
165
// we want to include uncommitted changes
166
166
GitRange {
167
- from_ref : commits_str. to_string ( ) ,
167
+ from_ref : Some ( commits_str. to_string ( ) ) ,
168
168
to_ref : None ,
169
169
include_uncommitted : true ,
170
170
allow_unknown_objects : false ,
@@ -252,17 +252,17 @@ mod test {
252
252
#[ test_case( "...{./foo}" , TargetSelector { raw: "...{./foo}" . to_string( ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot curly bracket foo" ) ]
253
253
#[ test_case( "." , TargetSelector { raw: "." . to_string( ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "." ) . unwrap( ) ) , ..Default :: default ( ) } ; "parent dir dot" ) ]
254
254
#[ test_case( ".." , TargetSelector { raw: ".." . to_string( ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( ".." ) . unwrap( ) ) , ..Default :: default ( ) } ; "parent dir dot dot" ) ]
255
- #[ test_case( "[master]" , TargetSelector { raw: "[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , ..Default :: default ( ) } ; "square brackets master" ) ]
256
- #[ test_case( "[from...to]" , TargetSelector { raw: "[from...to]" . to_string( ) , git_range: Some ( GitRange { from_ref: "from" . to_string( ) , to_ref: Some ( "to" . to_string( ) ) , ..Default :: default ( ) } ) , ..Default :: default ( ) } ; "[from...to]" ) ]
257
- #[ test_case( "{foo}[master]" , TargetSelector { raw: "{foo}[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , ..Default :: default ( ) } ; "{foo}[master]" ) ]
258
- #[ test_case( "pattern{foo}[master]" , TargetSelector { raw: "pattern{foo}[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , name_pattern: "pattern" . to_string( ) , ..Default :: default ( ) } ; "pattern{foo}[master]" ) ]
259
- #[ test_case( "[master]..." , TargetSelector { raw: "[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependencies: true , ..Default :: default ( ) } ; "square brackets master dot dot dot" ) ]
260
- #[ test_case( "...[master]" , TargetSelector { raw: "...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot master square brackets" ) ]
261
- #[ test_case( "...[master]..." , TargetSelector { raw: "...[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependencies: true , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot master square brackets dot dot dot" ) ]
262
- #[ test_case( "...[from...to]..." , TargetSelector { raw: "...[from...to]..." . to_string( ) , git_range: Some ( GitRange { from_ref: "from" . to_string( ) , to_ref: Some ( "to" . to_string( ) ) , ..Default :: default ( ) } ) , include_dependencies: true , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot [from...to] dot dot dot" ) ]
263
- #[ test_case( "foo...[master]" , TargetSelector { raw: "foo...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , name_pattern: "foo" . to_string( ) , match_dependencies: true , ..Default :: default ( ) } ; "foo...[master]" ) ]
264
- #[ test_case( "foo...[master]..." , TargetSelector { raw: "foo...[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , name_pattern: "foo" . to_string( ) , match_dependencies: true , include_dependencies: true , ..Default :: default ( ) } ; "foo...[master] dot dot dot" ) ]
265
- #[ test_case( "{foo}...[master]" , TargetSelector { raw: "{foo}...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: "master" . to_string( ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , match_dependencies: true , ..Default :: default ( ) } ; " curly brackets foo...[master]" ) ]
255
+ #[ test_case( "[master]" , TargetSelector { raw: "[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , ..Default :: default ( ) } ; "square brackets master" ) ]
256
+ #[ test_case( "[from...to]" , TargetSelector { raw: "[from...to]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "from" . to_string( ) ) , to_ref: Some ( "to" . to_string( ) ) , ..Default :: default ( ) } ) , ..Default :: default ( ) } ; "[from...to]" ) ]
257
+ #[ test_case( "{foo}[master]" , TargetSelector { raw: "{foo}[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , ..Default :: default ( ) } ; "{foo}[master]" ) ]
258
+ #[ test_case( "pattern{foo}[master]" , TargetSelector { raw: "pattern{foo}[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , name_pattern: "pattern" . to_string( ) , ..Default :: default ( ) } ; "pattern{foo}[master]" ) ]
259
+ #[ test_case( "[master]..." , TargetSelector { raw: "[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependencies: true , ..Default :: default ( ) } ; "square brackets master dot dot dot" ) ]
260
+ #[ test_case( "...[master]" , TargetSelector { raw: "...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot master square brackets" ) ]
261
+ #[ test_case( "...[master]..." , TargetSelector { raw: "...[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , include_dependencies: true , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot master square brackets dot dot dot" ) ]
262
+ #[ test_case( "...[from...to]..." , TargetSelector { raw: "...[from...to]..." . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "from" . to_string( ) ) , to_ref: Some ( "to" . to_string( ) ) , ..Default :: default ( ) } ) , include_dependencies: true , include_dependents: true , ..Default :: default ( ) } ; "dot dot dot [from...to] dot dot dot" ) ]
263
+ #[ test_case( "foo...[master]" , TargetSelector { raw: "foo...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , name_pattern: "foo" . to_string( ) , match_dependencies: true , ..Default :: default ( ) } ; "foo...[master]" ) ]
264
+ #[ test_case( "foo...[master]..." , TargetSelector { raw: "foo...[master]..." . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , name_pattern: "foo" . to_string( ) , match_dependencies: true , include_dependencies: true , ..Default :: default ( ) } ; "foo...[master] dot dot dot" ) ]
265
+ #[ test_case( "{foo}...[master]" , TargetSelector { raw: "{foo}...[master]" . to_string( ) , git_range: Some ( GitRange { from_ref: Some ( "master" . to_string( ) ) , to_ref: None , include_uncommitted: true , ..Default :: default ( ) } ) , parent_dir: Some ( AnchoredSystemPathBuf :: try_from( "foo" ) . unwrap( ) ) , match_dependencies: true , ..Default :: default ( ) } ; " curly brackets foo...[master]" ) ]
266
266
fn parse_target_selector ( raw_selector : & str , want : TargetSelector ) {
267
267
let result = TargetSelector :: from_str ( raw_selector) ;
268
268
0 commit comments