Perforce

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Perforce – komercyjny, prawnie zastrzeżony system kontroli wersji opracowany przez Perforce Software Inc.

Software development kit, SDK – zestaw narzędzi dla programistów niezbędny w tworzeniu aplikacji korzystających z danej biblioteki (np. DirectX SDK), pod dany system (np. Microsoft Platform SDK), sprzęt itp.Mac OS – system operacyjny komputerów Macintosh. Od wydania wersji 10.0 (OS X), starsze wersje znane są jako Mac OS Classic.

Architektura[ | edytuj kod]

Serwer Perforce zarządza centralną bazą danych oraz głównym repozytorium wersji plików. Perforce obsługuje zarówno klienty Git, jak i klienty, którzy używają protokołu Perforce. Klient Git może komunikować się z serwerem Perforce poprzez SSH lub HTTPS, a aplikacje klienckie Perforce komunikują się z serwerem za pomocą TCP/IP, używając własnego protokołu RPC. Użytkownicy przekazują zmienione pliki w changelistach. Zmiany są wprowadzane poprzez atomowe transakcje.

Lua − język skryptowy pierwotnie zaprojektowany dla rozszerzenia funkcjonalności różnych aplikacji, jednak często używany jako samodzielny język. Lua wiąże w sobie prostą składnię procedury (podobną do Pascala) z konstrukcjami opisu danych opartymi na tablicach asocjacyjnych i rozszerzalnej semantyce.HTTPS (ang. Hypertext Transfer Protocol Secure) – szyfrowana wersja protokołu HTTP. W przeciwieństwie do komunikacji niezaszyfrowanego tekstu w HTTP klient-serwer, szyfruje go za pomocą protokołu SSL. Zapobiega to przechwytywaniu i zmienianiu przesyłanych danych.

Serwer[ | edytuj kod]

Metadane

Baza danych Perforce jest bazą dedykowaną, prekonfigurowaną i instalowaną automatycznie wraz z systemem. Przechowuje powiązane z systemem metadane (stan pliku, atrybuty pliku, historia odgałęzień i mergów, changelisty, opisy zmian, użytkownicy, grupy, etykiety itd.). Pliki są identyfikowane poprzez przestrzeń nazw (np. poprzez nazwy plików neutralne względem systemu operacyjnego). Zawartość samego pliku nie jest przechowywana w bazie danych. W bazie danych przechowywane są skróty MD5 zawartości pliku, które mogą być użyte do weryfikacji integralności pliku.

Unicode – komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma używane na świecie. Definiują go dwa standardy – Unicode oraz ISO 10646. Znaki obu standardów są identyczne. Standardy te różnią się w drobnych kwestiach, m.in. Unicode określa sposób składu.P2P (ang.) Peer-to-Peer – model komunikacji w sieci komputerowej, zapewniający wszystkim hostom te same uprawnienia, w odróżnieniu od architektury klient-serwer.

Tabele bazy danych są przechowywane w postaci plików binarnych. Punkty kontrolne i journale są zapisywane jako pliki tekstowe, które mogą być kompresowane i archiwizowane w innej lokalizacji. Baza danych, która została uszkodzona przez awarię sprzętu lub inną awarię może zostać odzyskana ze świeżego journalu lub punktu kontrolnego.

PHP – obiektowy język programowania zaprojektowany do generowania stron internetowych i budowania aplikacji webowych w czasie rzeczywistym.Eclipse – platforma (framework) napisana w 2004 roku w Javie do tworzenia aplikacji typu rich client. Na bazie Eclipse powstało zintegrowane środowisko programistyczne do tworzenia programów w Javie, które jest razem z tą platformą rozpowszechniane.

Magazyn

Wersjonowana zawartość pliku jest przechowywana w katalogu, którego najwyższe poziomy są nazwane „depots”. Wersje pliku tekstowego są przechowywane jako delty RCS (przypis: pomimo że wersje plików tekstowych są przechowywane jako delty RCS, Perforce nie wykorzystuje systemu RCS do zarządzania plikami), a wersje plików binarnych są przechowywane jako całe pliki.

Remote Procedure Call (RPC - zdalne wywołanie procedury) to protokół zdalnego wywoływania procedur, stworzony przez firmę Sun i swego czasu dość popularny na Uniksach, obsługiwany w bibliotekach języka Java. Współcześnie wypierany przez bardziej rozbudowane protokoły takie jak CORBA, XML-RPC, czy JSON-RPC.Plik danych, plik komputerowy, zwykle krótko plik – uporządkowany zbiór danych o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest jego częścią, lecz jest przechowywana w systemie plików.

Kodowanie plików tekstowych odbywa się w standardzie ASCII bądź UTF-8, w zależności od konfiguracji serwera Perforce. Pliki w repozytorium nie są szyfrowane. Wersje, które są odgałęzieniami lub kopiami innych wersji są wirtualnymi kopiami w repozytorium. Domyślnie wszystkie wersje są przechowywane bez limitu czasowego ani ilościowego, limity mogą być ustawione przez administratora. Przestarzałe wersje i pliki mogą być usuwane przez administratora.

Git – rozproszony system kontroli wersji. Stworzył go Linus Torvalds jako narzędzie wspomagające rozwój jądra Linux. Git stanowi wolne oprogramowanie i został opublikowany na licencji GNU GPL w wersji 2.Replikacja danych – proces powielania informacji pomiędzy różnymi serwerami baz danych. Można rozróżnić następujące rodzaje replikacji:

Oprogramowanie klienckie[ | edytuj kod]

Oprogramowanie klienckie systemu Perforce można podzielić na pięć kategorii: GIT, linia poleceń, GUI, web oraz plugin. System Perforce może udostępnić część bądź wszystkie ze swoich zasobów jako repozytoria Git. Użytkownicy oprogramowania Git, a także innych aplikacji klienckich, mogą pracować na tej samej zawartości i historii. Commity Git są widoczne dla użytkowników innych klientów jako changelisty Perforce, natomiast zmiany wykonane za pomocą klientów Perforce są widoczne jako commity Git.

Microsoft Windows (ang. windows „okna”, IPA: [maɪkɹoʊsɑːft ˈwɪndoʊz]) – rodzina systemów operacyjnych stworzonych przez firmę Microsoft. Systemy rodziny Windows działają na serwerach, systemach wbudowanych oraz na komputerach osobistych, z którymi są najczęściej kojarzone. diff to program komputerowy działający w konsoli, wyświetlający różnice między dwoma plikami tekstowymi na poziomie poszczególnych wierszy. Ukazuje które wiersze występują w obu plikach, a które są unikalne. Poniżej przykładowe wyjście programu: wiersze wspólne dla porównywanych plików nie są oznaczane, wiersze występujące tylko w pierwszym pliku są poprzedzone minusem, a tylko w drugim – plusem:

Oryginalnym klientem do zarządzania za pomocą linii poleceń jest P4. Może on być używany w dowolnej powłoce poleceń lub w skrypcie. Domyślnie P4 komunikuje się na standardowym wyjściu w formie czytelnej dla człowieka, jednak może zostać tak skonfigurowany, aby komunikaty wyjścia były otagowanym tekstem bądź marshallowanym wyjściem Pythona czy Ruby. Do komunikowania się z Perforce dostępne są też natywne API C++ i Javy, a także dodatki zbudowane na bazie API C++ do komunikacji przy pomocy Lua, Perl, Python, PHP, Objective-C oraz Ruby.

FTP, protokół transferu plików (ang. File Transfer Protocol) – protokół komunikacyjny typu klient-serwer wykorzystujący protokół TCP według modelu TCP/IP (krótko: połączenie TCP), umożliwiający dwukierunkowy transfer plików w układzie serwer FTP–klient FTP.Interfejs programowania aplikacji (ang. Application Programming Interface, API) – sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki programy komunikują się między sobą. API definiuje się na poziomie kodu źródłowego dla takich składników oprogramowania jak np. aplikacje, biblioteki czy system operacyjny. Zadaniem API jest dostarczenie odpowiednich specyfikacji podprogramów, struktur danych, klas obiektów i wymaganych protokołów komunikacyjnych.

Użytkownicy systemu Perforce mogą korzystać z wieloplatformowego graficznego klienta P4V bazującego na Qt. Natomiast do zadań administracyjnych służy graficzny klient P4Admin.

Środowiska programistyczne, takie jak Eclipse czy Visual Studio mogą komunikować się z Perforce za pomocą wtyczek, natomiast Intellij IDEA w wersji Ultimate posiada własny dodatek pozwalający na integrację z Perforce.

Interfejs webowy dostarczany jest przez P4Web, który jednocześnie jest klientem Perforce oraz serwerem HTTP. P4Web może funkcjonować jako serwer www umożliwiający odczyt repozytorium oraz metadanych Perforce. Po zainstalowaniu na komputerze użytkownika może spełniać rolę lokalnego klienta Perforce z pełnymi uprawnieniami odczytu oraz zapisu.

Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrót – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – system operacyjny rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność, co zaowocowało powstaniem wielu odmian i implementacji. Część z nich, w szczególności Linux oraz OS X, jest w użyciu do dziś. UNIX jest zarejestrowanym znakiem towarowym The Open Group.Ruby to interpretowany, w pełni obiektowy i dynamicznie typowany język programowania stworzony w 1995 roku przez Yukihiro Matsumoto (pseudonim Matz). W języku angielskim ruby oznacza rubin.

Dzięki rozbudowanemu interfejsowi wtyczek Perforce udostępnia swoje zasoby narzędziom programistycznym, klientom SQL, FTP i wielu innym.

Rozproszony i zdalny system kontroli wersji[ | edytuj kod]

Perforce ma cztery mechanizmy zapewniające kontrolę wersji dla rozproszonych i pracujących zdalnie zespołów; te mechanizmy mogą być używane niezależnie lub w różnych kombinacjach.

Pierwszym z nich jest serwer proxy, który przechowuje często otwierane wersje w celu ograniczenia czasu dostępu do plików dla zdalnych pracowników. Ten mechanizm jest przeznaczony dla zespołów ściśle ze sobą współpracujących deweloperów, które wymagają centralnie kontrolowanego repozytorium plików i dostępnej zdalnie bazy danych.

MD5 (z ang. Message-Digest algorithm 5 – Skrót wiadomości wersja 5) – algorytm z dziedziny kryptografii. Jest to popularna kryptograficzna funkcja skrótu, która z dowolnego ciągu danych generuje 128-bitowy skrót.UTF-16 (ang. 16-bit Unicode Transformation Format) – w informatyce jeden ze sposobów kodowania znaków standardu unicode. Sposób ten wymaga użycia szesnastobitowych słów (ang. word), przy czym dla znaków na pozycjach poniżej 65536 (przedział 0000-FFFF) używane jest jedno słowo, którego wartość odpowiada pozycji znaku w standardzie. Dla znaków z wyższych pozycji używa się dwóch słów. Pierwsze z nich należy do przedziału D800–DBFF, drugie: DC00-DFFF. Na przykład znak o kodzie szesnastkowym 10000 zostanie zamieniony na sekwencję D800 DC00 a znak o kodzie 10FFFD (górna granica unikodu) na DBFF DFFD. W standardzie Unicode pozycjom z przedziału D800–DFFF nie są przypisane żadne znaki, zatem każda sekwencja słów kodowych jest interpretowana jednoznacznie.

Drugi mechanizm, znany jako remote depot, pozwala użytkownikom podłączonym do jednego serwera na korzystanie z zasobów udostępnionych przez inne serwery. Z remote depot każda organizacja ma kontrolę nad swoim własnym serwerem i może sprawić, aby część lub wszystkie z jej repozytoriów były widoczne dla innych serwerów. Ten mechanizm jest wykorzystywany w zespołach, w których współpraca przebiega na luźniejszych zasadach – gdzie większy nacisk kładzie się na komunikację i wymianę informacji peer-to-peer.

Proces zamiany obiektu w inny (prostszy) format (ciąg bajtów, XML) w celu np. przesłania go przez sieć lub do innego wątku. Termin ten używany jest w takich technologiach jak CORBA, RMI.Wiersz poleceń (ang. Command Line Interface, CLI), to jeden z najczęściej spotykanych sposobów interakcji człowieka z komputerem. Inne przykłady to interfejs tekstowy oraz interfejs graficzny.

Trzeci mechanizm, znany jako replikacja, kopiuje 1:1 wszystkie lub niektóre z danych przechowywanych w repozytorium do innego serwera. Repliki zlokalizowane bliżej użytkowników zapewniają krótszy czas dostępu do danych.

Wreszcie, Perforce może być replikowany do repozytoriów Git przy użyciu standardowego protokołu Git i poleceń Git.

Przestrzeń nazw (ang. namespace) – abstrakcyjne uniwersum, którego elementami mogą być nazwy, terminy techniczne lub słowa. W obrębie dowolnej przestrzeni nazw każda nazwa musi być niepowtarzalna. Przestrzeń nazw jest kontekstem, w którym słowo może być jednoznacznie przypisane do reprezentowanego przez nie pojęcia ze świata rzeczywistego.Otwarte oprogramowanie (ang. open source movement, dosł. ruch otwartych źródeł) – odłam ruchu wolnego oprogramowania (ang. free software), który proponuje nazwę open source software jako alternatywną dla free software, głównie z przyczyn praktycznych, a nie filozoficznych.


Podstrony: 1 [2] [3]




Warto wiedzieć że... beta

SQL (ang. Structured Query Language wym. /ɛskjuːˈɛl/) – strukturalny język zapytań używany do tworzenia, modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych.
FreeBSD — system operacyjny z rodziny Unix. Do wersji 2.0 wywodził się z systemu 4.3BSD, kolejne wersje wywodziły się z 4.4BSD Lite2; obu stworzonych przez Computer Systems Research Group (CSRG) na Uniwersytecie Kalifornijskim w Berkeley. Podobnie jak NetBSD, jest bezpośrednią pochodną 386BSD – systemu będącego pierwszą próbą przeportowania systemu Unix z gałęzi BSD na architekturę IA-32.Początkowo znany pod nazwą Unofficial 386BSD Patchkit.
Metadane – dane o danych, np. klasyczne katalogi biblioteczne. Za pomocą metadanych opisywane są dokumenty elektroniczne, w szczególności dokumenty dostępne poprzez sieci komputerowe, np. strony WWW dostępne w sieci Internet, jak również dokumenty tworzące nowoczesne biblioteki cyfrowe. Jednym ze standardów metadanych jest Dublin Core Metadata Element Set (DCMES).
Python – język programowania wysokiego poziomu ogólnego przeznaczenia i rozbudowanym pakiecie bibliotek standardowych, którego ideą przewodnią jest czytelność i klarowność kodu źródłowego. Jego składnia cechuje się przejrzystością i zwięzłością.
Serwer pośredniczący (pośrednik, często z ang. proxy) – oprogramowanie lub serwer z odpowiednim oprogramowaniem, które dokonuje pewnych operacji (zwykle nawiązuje połączenia) w imieniu użytkownika. Często utożsamiany z pośrednikiem HTTP (HTTP proxy).
Wyzwalacz (ang. trigger) jest to procedura wykonywana automatycznie jako reakcja na pewne zdarzenia w tabeli bazy danych. Wyzwalacze mogą ograniczać dostęp do pewnych danych, rejestrować zmiany danych lub nadzorować modyfikacje danych.
Microsoft Visual Studio – to zintegrowane środowisko programistyczne firmy Microsoft. Jest używane do tworzenia oprogramowania konsolowego oraz z graficznym interfejsem użytkownika, w tym aplikacje Windows Forms, WPF, Web Sites, Web Applications i inne. Aplikacje mogą być pisane na platformy: Microsoft Windows, Windows Phone, Windows CE, .NET Framework, Microsoft Silverlight oraz konsole XBOX.

Reklama