| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -662,26 +662,25 @@ def is_dirty(self, index=True, working_tree=True, untracked_files=False): | |||
| 662 | 662 | return True | |
| 663 | 663 | # END untracked files | |
| 664 | 664 | return False | |
| 665 | - | ||
| 665 | + | ||
| 666 | 666 | @property | |
| 667 | 667 | def untracked_files(self): | |
| 668 | 668 | # make sure we get all files, no only untracked directores | |
| 669 | - proc = self.git.status(untracked_files=True, as_process=True) | ||
| 670 | - stream = iter(proc.stdout) | ||
| 669 | + proc = self.git.status(porcelain=True, | ||
| 670 | + untracked_files=True, | ||
| 671 | + as_process=True) | ||
| 672 | + # Untracked files preffix in porcelain mode | ||
| 673 | + prefix = "?? " | ||
| 674 | + | ||
| 671 | 675 | untracked_files = list() | |
| 672 | - for line in stream: | ||
| 673 | - if not line.startswith("# Untracked files:"): | ||
| 676 | + for line in proc.stdout: | ||
| 677 | + if not line.startswith(prefix): | ||
| 674 | 678 | continue | |
| 675 | - # skip two lines | ||
| 676 | - stream.next() | ||
| 677 | - stream.next() | ||
| 678 | - | ||
| 679 | - for untracked_info in stream: | ||
| 680 | - if not untracked_info.startswith("#\t"): | ||
| 681 | - break | ||
| 682 | - untracked_files.append(untracked_info.replace("#\t", "").rstrip()) | ||
| 683 | - # END for each utracked info line | ||
| 684 | - # END for each line | ||
| 679 | + filename = line[len(prefix):].rstrip('\n') | ||
| 680 | + # Special characters are escaped | ||
| 681 | + if filename[0] == filename[-1] == '"': | ||
| 682 | + filename = filename[1:-1].decode('string_escape') | ||
| 683 | + untracked_files.append(filename) | ||
| 685 | 684 | return untracked_files | |
| 686 | 685 | ||
| 687 | 686 | def blame(self, rev, file): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments