κάνει git καταγραφής --graph --all δείχνουν την τρέχουσα θέση, όπως Hg glog κάνει




Πώς μπορώ να κάνω git δείχνουν τρέχοντα κόμβο μου στο γράφημα καταγραφής; `git log --graph --all` σηματοδοτεί όλοι οι κόμβοι εξίσου με *, αλλά έχω συνηθίσει να Mercurial όπου hg glog οπτικά διαφοροποιεί τρέχοντα κόμβο μου απεικονίζει με @. Αυτό είναι ιδιαίτερα χρήσιμο μετά git φέρω (γνωστός και ως hg pull), όταν τρέχοντα κόμβο μου δεν θα είναι απαραίτητα να είναι στην κορυφή. 


Προς το παρόν έχω να καταλάβω κατακερματισμού τρέχοντα κόμβο μου και στη συνέχεια να κυνηγούν μέσα από την έξοδο του γραφήματος καταγραφής. Υπάρχει καλύτερος τρόπος;


PS - Είμαι σε μη γραφικό περιβάλλον, ώστε gitk δεν αποτελεί επιλογή.


[UPDATE: τώρα είμαι πλήρως εγκλιματισθεί στις git, και το πρώτο πράγμα που χρειάζεται για τη δημιουργία ενός νέου περιβάλλοντος είναι θέμα την ακόλουθη εντολή για να στήσετε ένα ψευδώνυμο git:



```
git config --global alias.map 'log --graph --full-history --all --color --decorate'

```

Αυτό μου επιτρέπει να πληκτρολογήσετε `git map`σε κάθε repo και να δείτε ένα χάρτη ascii-art όλων των κλάδων και δεσμεύεται, και τη θέση μου σε αυτό το χάρτη. Αυτό το ψευδώνυμο είναι ίσως πιο διαδεδομένες εντολή git μου σε αυτό το σημείο (εκτός προσθέσετε και να δεσμευτεί), είναι πραγματικά απαραίτητο για μένα]
Προσθέτοντας την `--decorate`επιλογή θα εμφανιστούν οι αναφορές που δείχνουν προς κάθε commit. Έτσι, για παράδειγμα, θα δείτε **HEAD** και **προέλευσης / HEAD** (ή οτιδήποτε άλλο) στις σωστές θέσεις.


Μπορούν ακόμη και να είναι σε αρκετά χρώματα, αν έχετε αυτό ενεργοποιηθεί.


PS. ευχαριστώ για να με κάνει να ελέγξετε αυτό - είναι πραγματικά πολύ ωραία, ειδικά με τον τρόπο που δείχνει επίσης διάφορες κρύπτες μου.
Το πιο σημαντικό πράγμα για τον έλεγχο έκδοσης είναι:


***ΑΠΛΑ αρχίσετε να το χρησιμοποιείτε***


Δεν χρησιμοποιούν ελέγχου έκδοσης είναι μια φρικτή ιδέα. Εάν δεν χρησιμοποιείτε έλεγχος έκδοσης, σταματήσετε να διαβάζετε τώρα και να αρχίσετε να το χρησιμοποιείτε.


Είναι πολύ εύκολο να μετατρέψετε από



```
cvs<->svn<->git<->hg

```

Δεν έχει σημασία ποιο θα επιλέξετε. Απλά επιλέξτε το πιο εύκολο για σας να χρησιμοποιήσετε και να αρχίσει την καταγραφή της ιστορίας του κωδικού σας. Μπορείτε πάντα να μεταναστεύσουν σε μια άλλη (Δ) VCS αργότερα.


Αν ψάχνετε για ένα εύκολο στη χρήση γραφικό περιβάλλον ματιά [TortoiseSVN (Windows)](http://tortoisesvn.tigris.org/"TortoiseSVN") και [εκδόσεις (Mac)](http://www.versionsapp.com/) (Προτεινόμενη από [codingwithoutcomments](https://stackoverflow.com/questions/2658?sort=newest#2708) )







Επεξεργασία:



> 
> [pix0r είπε:](https://stackoverflow.com/questions/2658/#2672)
> 
> 
> Git έχει μερικά ωραία χαρακτηριστικά, αλλά δεν θα είναι σε θέση να τις εκτιμήσουν αν δεν έχετε ήδη χρησιμοποιήσει κάτι περισσότερο τυπική, όπως CVS ή Subversion.
> 
> 
> 


Αυτό. Χρησιμοποιώντας το git είναι άχρηστη αν δεν ξέρετε τι έλεγχος έκδοσης μπορεί να κάνει για σας.


Επεξεργασία 2:


Μόλις είδα αυτό το σύνδεσμο στο reddit: [Ανατροπή εξαπατήσει φύλλο](http://www.addedbytes.com/cheat-sheets/subversion-cheat-sheet/) . Καλή γρήγορη αναφορά για την γραμμή εντολών svn. εγω χρησιμοποιω το maim αντι του scrot και εχω βαλει αυτο για το prtsc:

bindsym print exec --no-startup-id maim pic-full-"$(date '+%y%m%d-%h%m-%s').png > 
> Θέλω να προσθέσω έναν κανόνα που ελέγχει για την παρουσία ενός αρχείου folder.jpg σε κάθε κατάλογο, αλλά για να προσθέσετε αυτό θα κάνει ο κώδικας σημαντικά πιο βρώμικο σε αυτό είναι σημερινή κατάσταση ..
> 
> 
> 


Αυτό δεν φαίνεται κακό. Στην πραγματικότητα τρέχοντα κωδικό σας κάνει πολύ όμορφα, και Sven αναφέρεται ένας καλός τρόπος για να το κάνει, καθώς:


1. Πάρτε μια λίστα με όλα τα αρχεία
2. Ελέγξτε για «απαιτείται» αρχεία


Εσείς απλά θα πρέπει να προσθέσετε στο λεξικό σας μια λίστα με τα απαραίτητα αρχεία:



```
checker = {
  ...
  'required': ['file', 'list', 'for_required']
}

```

Όσον αφορά την ύπαρξη ένας καλύτερος / επεκτάσιμο τρόπο για να το κάνετε αυτό; Δεν είμαι ακριβώς σίγουρος. Θα μπορούσα μόνο να σκεφτώ έναν τρόπο για να ενδεχομένως να αποσύρει τις «πολλαπλές» κανονικές εκφράσεις και να οικοδομήσουν μακριά από την ιδέα του Sven για τη χρήση διαχωριστικό. Έτσι η στρατηγική μου θα ορίζει ένα λεξικό ως εξής (και λυπάμαι δεν ξέρω Python σύνταξη και είμαι ένα αγοράκι να τεμπέλης για να το ψάξει, αλλά θα πρέπει να έχει νόημα. Ο / regex / είναι συντομογραφία για ένα regex ):



```
check_dict = {
  'delim'    : /\-/,
  'parts'    : [ 'Show Name', 'Episode Name', 'Episode Number' ],
  'patterns' : [/valid name/, /valid episode name/, /valid number/ ],
  'required' : ['list', 'of', 'files'],
  'ignored'  : ['.*', 'hidden.txt'],
  'start_dir': '/path/to/dir/to/test/'
}

```

1. Χωρίστε το όνομα του αρχείου με βάση το διαχωριστικό.
2. Ελέγξτε καθένα από τα μέρη.


Επειδή μια ταξινομημένη λίστα του μπορείτε να καθορίσετε τι λείπει μέρη και αν ένα τμήμα δεν ταιριάζει με κανένα σχέδιο είναι ακατάλληλο. Εδώ η `parts`και `patterns`έχουν μια αναλογία 1 προς 1. Δύο σειρές αντί ενός λεξικού επιβάλλει την τάξη.


Αγνοήθηκε και απαραίτητα αρχεία μπορούν να αναφέρονται. Η `.`και `..`τα αρχεία θα πρέπει κατά πάσα πιθανότητα να αγνοηθούν αυτόματα. Ο χρήστης θα πρέπει να επιτρέπεται να εισόδου «globs» η οποία μπορεί να επεκταθεί κέλυφος. Σκέφτομαι εδώ `svn:ignore`τις ιδιότητες, αλλά globbing είναι φυσικό για την εγγραφή αρχείων.


Εδώ `start_dir`θα προεπιλογή στον τρέχοντα κατάλογο, αλλά αν θέλετε ένα ενιαίο αρχείο για να τρέξει αυτοματοποιημένη δοκιμή από μια δέσμη των καταλόγων αυτό θα ήταν χρήσιμο.


Το πραγματικό ελεύθερο άκρο εδώ είναι το πρότυπο διαδρομή και προς την ίδια κατεύθυνση απαιτείται ποιο μονοπάτι για «έγκυρα αρχεία». Πραγματικά δεν θα μπορούσε να καταλήξει σε μια σταθερή ιδέα χωρίς να γράψετε μία μεγάλη κανονική έκφραση και τη λήψη των ομάδων από αυτό ... για να χτίσει ένα πρότυπο. Ένιωσα πολύ όπως γράφει ένα TextMate γλώσσα γραμματική. Αλλά αυτό αρχίζει να απομακρυνθούν από την ευκολία χρήσης. Το πραγματικό πρόβλημα ήταν ότι το πρότυπο μονοπάτι δεν αποτελείται από `parts`, το οποίο έχει νόημα, αλλά προσθέτει πολυπλοκότητα.


Είναι αυτή η στρατηγική σε αρμονία με αυτό που σκέφτεστε; Υπάρχει ένα [plugin Eclipse σε εξέλιξη](http://www.eclipse.org/egit/) . Υποθέτω ότι προσπαθείτε να κάνετε το περιβάλλον εντολή ως επιεικής δυνατόν. Αν αυτή είναι η περίπτωση, σας προτείνω να χρησιμοποιήσετε έναν αλγόριθμο παρόμοιο με αυτό:


1. Διαβάστε στο κορδόνι
	* Χωρίστε το string σε μάρκες
	* Χρησιμοποιήστε ένα λεξικό για να μετατρέψετε τα συνώνυμα σε μια κοινή μορφή
	* Για παράδειγμα, μετατροπή «χτύπησε», «γροθιά», «απεργία», και «κλωτσιά» όλα για να «χτυπήσει»
	* Εκτελέστε ενέργειες σε ένα μη διατεταγμένο, χωρίς αποκλεισμούς βάση
	* **Μη αριθμημένη** - «γροθιά τον πίθηκο στο πρόσωπο» είναι το ίδιο πράγμα όπως «το πρόσωπο στο γροθιά μαϊμού»
	* **Inclusive** - Εάν η εντολή είναι υποτίθεται ότι είναι «γροθιά τον πίθηκο στο πρόσωπο» και παρέχουν «μαϊμού γροθιά», θα πρέπει να ελέγξετε πόσες εντολές αυτή ταιριάζει. Εάν μόνο μία εντολή, να κάνει αυτή την ενέργεια. Θα μπορούσε ακόμη και να είναι μια καλή ιδέα να έχουμε προτεραιότητες εντολή, ακόμη και αν υπήρχαν ακόμη αγώνες, θα εκτελέσει την κορυφή δράση. [εικόνα] leobatakis:

sudo pluma /etc/default/grub

η δουλειά έγινε με το (δύσχρηστο) nano. αλλά εγκατέστησα το gedit που το ξέρω από παλιά! (ελπίζοντας να μην ξαναχρειαστεί!) Κάθε συγκροτήματα που αναμένεται να είναι στην GAC θα πρέπει να παραμείνουν στο GAC. Αυτό περιλαμβάνει System.Web.dll ή οποιοδήποτε άλλο dll 3rd party που θα αναπτυχθεί στο Συμβούλιο Γενικών Υποθέσεων της παραγωγής. Αυτό σημαίνει ότι μια νέα προγραμματιστής θα πρέπει να εγκαταστήσετε αυτές τις συνελεύσεις.


Όλα τα άλλα συγκροτήματα 3ο μέρος θα πρέπει να είναι αναφορές μέσα από μια σχετική διαδρομή. τυπικό μου δομή είναι:



```
-Project
--Project.sln
--References
StructureMap.dll
NUnit.dll
System.Web.Mvc.dll
--Project.Web
Project.Web.Proj
Project.Web.Proj files
--Project
Project.Proj
Project.Proj files

```

Project.Web και Έργων αναφορά των συγκροτημάτων στη ρίζα / Αναφορές φάκελο σχετικά. Αυτά τα .dlls ελέγχονται σε ανατροπή.


Εκτός από αυτό, * / bin * / bin / * obj θα πρέπει να είναι σε παγκόσμια πορεία αγνοούν σας.


Με αυτή τη ρύθμιση, όλες οι αναφορές σε συγκροτήματα είτε μέσα από το GAC (έτσι πρέπει να λειτουργεί σε όλους τους υπολογιστές), ή σε σχέση με το έργο εντός λύση σας. ευχαριστώ για τις απαντήσεις σας. κάνοντας ότι μου είπες μου βγάζει αυτό στο τερματικό

[[screenshot\_20201018\_124337]](https://linux-user.gr/uploads/default/original/2x/a/abd4386beaeeb5d5c1e5addf49427aa084e69842.jpeg "screenshot_20201018_124337")

καμία ιδέα

ξανά έψαξα στο νετ και βρήκα τη λύση σε αυτό το forum απάντηση #5

[εικόνα]

[[solved]starting a daemon / applications & desktop environments / arch...](https://bbs.archlinux.org/viewtopic.php?id=154171)

… Τρέχουμε [Buildbot - Trac](http://buildbot.net/trac) στην εργασία. Δεν έχω χρησιμοποιήσει πάρα πολύ από την βάση κώδικα μου δεν είναι μέρος του κύκλου κυκλοφορίας ακόμα. Αλλά θα τρέξει τις δοκιμές σε διαφορετικά περιβάλλοντα (OSX / Linux / Win) και στέλνει μηνύματα ηλεκτρονικού ταχυδρομείου - και είναι γραμμένο σε Python. Τα θέματα Python είναι καλό για **ταυτόχρονες προγραμματισμό I / O** . Τα θέματα που αντάλλαξαν έξω από το CPU μόλις έχουν μπλοκάρει αναμονής για την είσοδο από το αρχείο, δίκτυο, κ.λπ. Αυτό επιτρέπει σε άλλα θέματα Python για να χρησιμοποιήσετε τη CPU, ενώ άλλοι περιμένουν. Αυτό θα σας επιτρέψει να γράψετε ένα multi-threaded διακομιστή web ή web crawler, για παράδειγμα.


Ωστόσο, οι Python θέματα σε συνέχειες από την [GIL](http://en.wikipedia.org/wiki/Global_Interpreter_Lock) κατά την είσοδό του πυρήνα διερμηνέα. Αυτό σημαίνει ότι αν δύο θέματα που είναι γηπέδου αριθμοί, μόνο ένας μπορεί να τρέξει σε οποιαδήποτε δεδομένη στιγμή. Σημαίνει, επίσης, ότι δεν μπορείτε να επωφεληθείτε από multi-core ή multi-επεξεργαστή αρχιτεκτονικές.


Υπάρχουν λύσεις όπως το τρέξιμο πολλαπλών διερμηνέων Python ταυτόχρονα, χρησιμοποιώντας μια βιβλιοθήκη σπείρωμα C βασίζεται. Αυτό δεν είναι για τον εξασθενημένο της καρδιάς και τα οφέλη μπορεί να μην αξίζει τον κόπο. Ας ελπίσουμε για ένα all λύση Python σε μια μελλοντική έκδοση.