@@ -2,6 +2,7 @@ use git2::Repository;
22use std:: env;
33use glob:: Pattern ;
44use std:: process:: Command ;
5+ use std:: time:: Instant ;
56
67#[ derive( Clone ) ]
78struct PatternFilter {
@@ -39,17 +40,23 @@ fn main() {
3940
4041 let mut filtered_files: Vec < String > = Vec :: new ( ) ;
4142
43+ let start = Instant :: now ( ) ;
4244 for pattern in include_patterns_filters. iter ( ) {
4345 filtered_files. extend ( filter_files_by_pattern ( & pattern, changed_files. clone ( ) ) ) ;
4446 }
47+ let duration = start. elapsed ( ) ;
48+ println ! ( "Filtering files done in: {:?}" , duration) ;
4549
50+ let start = Instant :: now ( ) ;
4651 for pattern in exclude_patterns_filters. iter ( ) {
4752 filtered_files = filtered_files
4853 . iter ( )
4954 . filter ( |file| !Pattern :: new ( & pattern. pattern ) . expect ( "Failed to create pattern" ) . matches ( file) )
5055 . map ( |file| file. to_string ( ) )
5156 . collect ( ) ;
5257 }
58+ let duration = start. elapsed ( ) ;
59+ println ! ( "Excluding files done in: {:?}" , duration) ;
5360
5461 println ! ( "DIFF_FILES: {:?}" , filtered_files) ;
5562 println ! ( "DIFF_COUNT: {}" , filtered_files. len( ) ) ;
@@ -95,7 +102,10 @@ fn create_patterns_filters(arg: &str) -> Vec<PatternFilter> {
95102}
96103
97104fn get_changed_files ( ) -> Vec < String > {
105+ let start = Instant :: now ( ) ;
98106 let repository = Repository :: open ( "." ) . expect ( "Failed to open repository" ) ;
107+ let duration = start. elapsed ( ) ;
108+ println ! ( "Opening repository done in: {:?}" , duration) ;
99109
100110 let head = repository. head ( ) . expect ( "Failed to get HEAD" ) ;
101111 let head_commit = head. peel_to_commit ( ) . expect ( "Failed to peel HEAD to commit" ) ;
@@ -112,6 +122,7 @@ fn get_changed_files() -> Vec<String> {
112122 let base_ref = repository. find_reference ( & base_ref_string) . expect ( "Failed to find default branch" ) ;
113123 let base_commit = base_ref. peel_to_commit ( ) . expect ( "Failed to peel default branch to commit" ) ;
114124
125+ let start = Instant :: now ( ) ;
115126 let diff = repository. diff_tree_to_tree (
116127 Some ( & base_commit. tree ( ) . expect ( "Failed to get base tree" ) ) ,
117128 Some ( & head_commit. tree ( ) . expect ( "Failed to get HEAD tree" ) ) ,
@@ -130,6 +141,8 @@ fn get_changed_files() -> Vec<String> {
130141 None ,
131142 None ,
132143 ) . expect ( "Error while iterating over diff" ) ;
144+ let duration = start. elapsed ( ) ;
145+ println ! ( "Getting changed files done in: {:?}" , duration) ;
133146
134147 changed_files
135148}
0 commit comments