> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# (v3.5.13 Geçişi) Tam proje geçmişi geçişi

## Tam proje geçmişi geçişi

Community Edition'ın `3.5.x` sürümü, SaaS hizmetimiz [overleaf.com](http://overleaf.com/) üzerinde zaten mevcut olan [Tam Proje Geçmişi özelliğini](https://www.overleaf.com/learn/latex/Using_the_History_feature) içerir.

Örneğinizi Overleaf CE `3.5.13` sürümüne yükselttikten sonra tüm yeni projeler varsayılan olarak Tam Proje Geçmişi'ni kullanır. Mevcut projeler, taşınana kadar eski Geçmiş sistemini kullanmaya devam eder.

<Info>
  `3.5.13` sürümüne yükseltir ve daha önceki bir sürüme geri dönmeye karar verirseniz, tam bir sistem yedeğinden geri yükleme yapmalısınız. `3.5.13` sürümünde oluşturulan projelerin geçmişi, Overleaf CE'nin önceki sürümleriyle uyumlu değildir.
</Info>

Yeni Tam Proje Geçmişi, kullanıcılar için çeşitli iyileştirmeler getirir:

* Eski sistemde desteklenmeyen ikili dosyalardaki değişiklikleri izler.
* Etiketli sürümler desteklenir.
* Sistem genel olarak daha sağlamdır ve veri kaybı olasılığı daha düşüktür.

Tam proje geçmişi hakkında daha fazla bilgi için [Tam Proje Geçmişi belgelerine](https://www.overleaf.com/learn/latex/Using_the_History_feature) bakın.

### Mevcut projeleri taşıma

<Steps>
  <Step title="Yedek oluşturun">
    Örneğinizin **mongo**, **redis** ve **sharelatex** dizinlerinin tutarlı bir anlık görüntüsünü içeren tam bir [yedeğini](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup) oluşturun.
  </Step>

  <Step title="Güncelleyin">
    sharelatex/sharelatex imajının sürümünü 3.5.13'e güncelleyin.

    Toolkit: Toolkit'i en son sürüme yükseltmek için `$ bin/upgrade` betiğini kullanın ve **config/version** dosyasını 3.5.13 olarak düzenleyin.
  </Step>

  <Step title="Örneği başlatın">
    İdeal olarak, yedeğinizi geri yüklemeniz gerekmesi durumunda veri kaybını önlemek için geçiş sürerken kullanıcıların örneğinize erişmesini engellemek istersiniz. Bunun nasıl yapılacağı hakkında daha fazla bilgi için [Çevrimdışı geçiş](https://github.com/overleaf/overleaf/wiki/Full-Project-History-Migration/#offline-migration) bölümüne bakın.
  </Step>

  <Step title="Tüm hizmetler çalışır duruma gelene kadar bekleyin">
    Tüm hizmetler çalışır duruma gelene kadar bekleyin (aşağıdaki komuta bakın)

    ```bash wrap theme={null}
    $ bin/docker-compose exec sharelatex /bin/bash -c "curl http://localhost:3000/status"
    web sharelatex is alive (api)%
    ```
  </Step>

  <Step title="Geçiş betiğini çalıştırın">
    ```bash wrap theme={null}
    # Overleaf Toolkit users:
    $ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"

    # legacy docker-compose.yml users:
    $ docker exec sharelatex /bin/bash -c "cd /overleaf/services/web; VERBOSE_LOGGING=true node scripts/history/migrate_history.js --force-clean --fix-invalid-characters --convert-large-docs-to-file"
    ```

    `--force-clean`, yeni sistemdeki kısmen taşınmış proje geçmişi verilerini temizler; bu, önceki denemelerde başarısız olan tek tek projeler için geçişin yeniden denenmesine olanak tanır;

    `--fix-invalid-characters`, yeni geçmiş sistemi tarafından desteklenmeyen yazdırılamayan karakterleri değiştirir;

    `--convert-large-docs-to-file`, 2MB düzenlenebilir boyut eşiğini aşan belgeleri düzenlenemeyen bir dosyaya dönüştürür)

    Çıktı şöyle görünmelidir:

    ```bash theme={null}
    Migrated Projects  :  1
    Total Projects     :  51
    Remaining Projects :  51
    Total history records to migrate: 98
    Starting migration...
    Migrating project: 63d29b5772dd80015a81bffe
    migration result { upgraded: true, historyType: 'NoneWithoutConversion' }
    Migrating project: 63d29c2e72dd80015a81c0a2
    migration result { upgraded: true, historyType: 'NoneWithoutConversion' }

    // …

    Migration complete
    ==================
    Projects migrated:  51
    Projects failed:  0
    Done.
    ```

    Geçiş başarılı olursa `0` çıkış kodu ve hata olmadığını gösteren son satırları alırsınız:

    ```bash theme={null}
    Projects failed:  0
    Done.
    ```

    Kullanıcılarınızın erişimini yeniden açabilirsiniz (sonraki adıma bakın). Hatalar varsa lütfen aşağıdaki sorun giderme bölümüne bakın. Sorunlar hemen düzeltilemese bile siteyi yeniden açabilirsiniz; taşınmamış projeler eski geçmiş sisteminde kalmaya devam eder.
  </Step>

  <Step title="Siteyi yeniden açın">
    Çevrimdışı geçiş yapmayı seçtiyseniz siteyi yeniden açmanız gerekir. Hâlâ oturumunuz açıksa şunları yapmanız gerekir:

    1. **Admin** düğmesine tıklayın ve **Manage Site** seçeneğini seçin
    2. **Open/Close Editor** sekmesine tıklayın
    3. **Reopen Editor** düğmesine tıklayın

    Tarayıcınızı kapattıysanız siteyi `$ bin/up` ile yeniden başlatmanız gerekir.
  </Step>
</Steps>

#### Çevrimdışı geçiş

Geçmiş geçiş betiği çalışırken kullanıcıların oturum açabilmesini önlemek için lütfen şu adımları izleyin:

* Overleaf örneğinize bir yönetici hesabıyla giriş yapın
* **Admin** düğmesine tıklayın ve **Manage Site** seçeneğini seçin
* **Open/Close Editor** sekmesine tıklayın
* **Close Editor** düğmesine tıklayın
* **Disconnect all users** düğmesine tıklayın

Bu işlem yapıldıktan sonra, oturumu açık olan kullanıcılar bakım sayfasına yönlendirilir ve giriş sayfasını ziyaret eden yeni kullanıcılar bakım sayfasını görür ve oturum **açamaz**.

#### Çevrimiçi geçiş

Uygulama çalışmaya devam ederken geçiş betiklerini çalıştırmak mümkündür. Dikkate alınması gereken birkaç husus vardır:

* Geçiş süreci yoğun CPU kullanır; betik çalışırken kaynak kullanımını izlemelisiniz.
* Yüksek bir `--concurrency` değeriyle bazı hizmetlerdeki (özellikle `track-changes`) olay döngüsü bir miktar engellenme yaşayabilir ve bu da kullanıcı deneyiminin kötüleşmesine yol açabilir. Varsayılan `--concurrency=1` değeriyle başlamanızı öneririz.
* Betiği istediğiniz zaman durdurabilirsiniz. Yeniden başlatmak, geçişi kaldığınız yerden sürdürür. Bu, geçişi daha az yoğun saatlerde (ör. gece) çalıştırmayı tercih etmeniz durumunda kullanışlıdır.

Önerimiz, proje sayınız 1000'den az olduğunda (`db.projects.count()`) siteyi kapatıp geçişi bir bakım penceresinde çevrimdışı olarak çalıştırmanızdır. Proje sayısı fazlaysa betiği çalıştırıp ilerlemesini izleyebilir, ardından kendi durumunuza göre çevrimiçi mi yoksa çevrimdışı mı çalıştırmaya devam edeceğinize karar verebilirsiniz.

#### Eski geçmiş verilerini temizleme

Eski geçmiş verilerini temizlemek için bir betik Server Pro `3.5.6`, `4.0.6` ve `4.1.0` sürümlerine eklenmiştir.

```bash wrap theme={null}
bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/history/clean_sl_history_data.js"
```

Betik, tüm projeler taşındıktan sonra çalıştırılabilir. Çevrimiçi bir geçiş yapılırken biraz alan boşaltmak için de kullanılabilir.

<Info>
  Server Pro'nun 3.5.13 öncesi sürümlerinde betik, `docHistory` ve `docHistoryIndex` koleksiyonlarının içeriğini siler. MongoDB, belgeleri sildikten sonra disk alanını serbest bırakmaz; bunun yerine bu alanı aynı koleksiyondaki gelecekteki belgeler için yeniden kullanır. Geçmiş geçişinden sonra bu koleksiyonlara bir daha hiçbir şey yazılmayacağından disk alanı kullanılmadan kalır.

  Disk alanını yeniden kullanılabilir hale getirmek istiyorsanız Server Pro 3.5.13'e (hâlâ 3.x sürümünü kullanıyorsanız) veya Server Pro 4.2.5'e (4.x sürümünü kullanıyorsanız) yükseltebilir ve temizleme betiğini yeniden çalıştırabilirsiniz.

  Server Pro'nun en son `3.5.x` yama sürümlerinde ve en son `4.x.x` sürümünde bulunan temizleme betiği, son adım olarak koleksiyonları kaldırır (drop).

  Temizleme betiğini yeniden çalıştırmak güvenlidir.
</Info>

### Sorun giderme

Sorun giderme önerilerini buraya ekleyeceğiz. Normalde yalnızca Server Pro müşterilerine destek sunsak da, bu geçişin doğası gereği, tam proje geçmişi geçişine özgü sorunlar yaşayan CE müşterilerine de destek olmak için elimizden geleni yapacağımızı lütfen unutmayın.

Tam proje geçmişi geçiş betiği başarısız olursa (yani bir hatayla çıkarsa veya sıfırdan farklı sayıda başarısız proje yazdırırsa), lütfen aşağıdaki ayrıntıları [support+historymigration@overleaf.com](mailto:support+historymigration@overleaf.com?subject=Full%20project%20history%20migration%20problem\&body=Instance%20Type%3A%20CE%20or%20Server%20Pro%20%28delete%20as%20appropriate%29%0A%0AInstallation%20Type%3A%20Overleaf%20toolkit%20or%20docker-compose.yml%20or%20other%20%28delete%20as%20appropriate%29%0A%0AScript%20output%3A%0A%0Abin%2Fdoctor%20output%20%28if%20using%20toolkit%29%3A%0A) adresine e-postayla destek ekibimize gönderin:

Konu: Full project history migration problem

* Örnek Türü: CE veya Server Pro (uygun olmayanı silin)
* Kurulum Türü: Overleaf toolkit, `docker-compose.yml` veya diğer (uygun olmayanları silin)
* Sürüm: 3.5.x (toolkit: `$ cat config/version`)
* Geçiş betiği çıktısı (konteynerde `/overleaf/services/web` altında bulunmalıdır)
* Taşınan Projeler: (geçiş betiği çıktısına göre)
* Toplam Projeler: (geçiş betiği çıktısına göre)
* Kalan Projeler: (geçiş betiği çıktısına göre)
* Geçişin süresi:
* `bin/doctor` çıktısı (toolkit kullanılıyorsa)
* Toolkit sürümü: `$ git rev-parse HEAD` (Toolkit kullanılıyorsa)

`history-v1`, `project-history` ve `track-changes` hizmetlerinin günlük dosyalarını e-postaya eklemeyi düşünün. Bunları `sharelatex` konteynerinin içinde `/var/log/sharelatex` konumunda bulabilir ve şu şekilde dışa aktarabilirsiniz:

```bash theme={null}
$ docker cp sharelatex:/var/log/sharelatex/history-v1.log history-v1.log
$ docker cp sharelatex:/var/log/sharelatex/project-history.log project-history.log
$ docker cp sharelatex:/var/log/sharelatex/track-changes.log track-changes.log
```

Lütfen günlük dosyalarını eklemeden önce içlerindeki hassas bilgileri karartın.

#### Bozuk dosya ağaçlarını bulma

Geçiş, hatalı biçimlendirilmiş bir dosya ağacına sahip projelerde (örneğin dosya adlarının boş olduğu durumlarda) başarısız olabilir. Veritabanındaki tüm projeleri kontrol eden `find_malformed_filetrees` betiğini kullanarak bu sorunların bir listesini bulabilirsiniz:

```bash wrap theme={null}
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/find_malformed_filetrees.js"
BAD PATH: 123456789012345678901234 rootFolder.0.1.2.3
BAD PATH: 123456789012345678901234 rootFolder.0.4.5.6
...
```

Geçersiz yolları düzeltmek için `fix_malformed_filetree` betiğini kullanın ve komutu her hatalı yol için bir kez çalıştırın:

```bash wrap theme={null}
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.1.2.3"
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; node scripts/fix_malformed_filetree.js 123456789012345678901234 rootFolder.0.4.5.6"
...
```

#### Projeleri tam proje geçmişinden eski geçmişe düşürme

Tam proje geçmişine taşınmış bir proje varsa ancak eski geçmişe geri dönmek istiyorsanız, `downgrade_project` betiğini şu şekilde kullanın:

```bash wrap theme={null}
$ bin/docker-compose exec sharelatex /bin/bash -c "cd /overleaf/services/web; PROJECT_ID=YOUR
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.