Wątek przeniesiony 2022-10-12 12:41 z JavaScript przez Riddle.

VSCode nadal widzi starą wersję pliku po ściśnięciu commitów

0

Jeżeli to nie to podforum przepraszam i proszę o przeniesienie, ale kod jest w JS, a nie znalazłam czegoś wprost o edytorach. Mam problem polegający na tym, że VSCode podczas kompilacji (apka React) zachowuje się jakby nadal widział starą wersję jednego z plików. Plik ten został jakiś czas temu przepisany z JS na TS, i mniej więcej wtedy też zostały w nim wprowadzone inne zmiany. Zostało to pomyślnie skomitowane, commity zostały ściśnięte do jednego i w tym momencie pojawił się problem — w edytorze mam otwarty modelReducer.ts, natomiast kompilator twierdzi, że znalazł błędy w modalReducer.js (opis błędów pasuje faktycznie do wcześniejszej wersji tego pliku). Próbowałam wprowadzać drobne zmiany, zamykać i otwierać VSCode, czyścić historię terminali, usunęłam cały build - wszystko na próżno. Co zrobić w takiej sytuacji?

1

Wstaw jakiś testowy fragment do pliku i skompiluj jeszcze raz, tylko nie wstawiaj komentarzy bo często są kasowane przez kompilatory

console.log('test');
console.log('test');

i sprawdź w katalogu dist / build jaki jest wynik, bo może błąd jest w budowaniu projektu?

3
Doctanna napisał(a):

Jeżeli to nie to podforum przepraszam i proszę o przeniesienie, ale kod jest w JS, a nie znalazłam czegoś wprost o edytorach. Mam problem polegający na tym, że VSCode podczas kompilacji (apka React) zachowuje się jakby nadal widział starą wersję jednego z plików. Plik ten został jakiś czas temu przepisany z JS na TS, i mniej więcej wtedy też zostały w nim wprowadzone inne zmiany. Zostało to pomyślnie skomitowane, commity zostały ściśnięte do jednego i w tym momencie pojawił się problem — w edytorze mam otwarty modelReducer.ts, natomiast kompilator twierdzi, że znalazł błędy w modalReducer.js (opis błędów pasuje faktycznie do wcześniejszej wersji tego pliku). Próbowałam wprowadzać drobne zmiany, zamykać i otwierać VSCode, czyścić historię terminali, usunęłam cały build - wszystko na próżno. Co zrobić w takiej sytuacji?

Zawsze w takiej sytuacji warto wpisać git status.
Zobacz też czy nie masz changelisty w VSCode.
Pomocne może się okazać git gc
Otwórz plik w innym edytorze niż VSCode, np notepad i zobacz jakie tam są treści faktycznie, możesz też z konsoli, ale nie z terminala w VS.
Odpal build z innego terminala, zobacz czy wynik będzie inny.

0
Riddle napisał(a):
Doctanna napisał(a):

Jeżeli to nie to podforum przepraszam i proszę o przeniesienie, ale kod jest w JS, a nie znalazłam czegoś wprost o edytorach. Mam problem polegający na tym, że VSCode podczas kompilacji (apka React) zachowuje się jakby nadal widział starą wersję jednego z plików. Plik ten został jakiś czas temu przepisany z JS na TS, i mniej więcej wtedy też zostały w nim wprowadzone inne zmiany. Zostało to pomyślnie skomitowane, commity zostały ściśnięte do jednego i w tym momencie pojawił się problem — w edytorze mam otwarty modelReducer.ts, natomiast kompilator twierdzi, że znalazł błędy w modalReducer.js (opis błędów pasuje faktycznie do wcześniejszej wersji tego pliku). Próbowałam wprowadzać drobne zmiany, zamykać i otwierać VSCode, czyścić historię terminali, usunęłam cały build - wszystko na próżno. Co zrobić w takiej sytuacji?

Zawsze w takiej sytuacji warto wpisać git status.
Zobacz też czy nie masz changelisty w VSCode.
Pomocne może się okazać git gc
Otwórz plik w innym edytorze niż VSCode, np notepad i zobacz jakie tam są treści faktycznie, możesz też z konsoli, ale nie z terminala w VS.
Odpal build z innego terminala, zobacz czy wynik będzie inny.

Ostatecznie oto, co zrobiłam, acz nie jestem z tego dumna. Ponieważ treść charakterystyczna dla TS była nieznaczna, a wszystkie błędy dotyczyły jednego pliku, zakomentowałam treści TS i zmieniłam tymczasowo na .js. Skompilowało się. Zamieniłam na .ts, odkomentowałam treści TS i też się skompilowało więc problem rozwiązany, aczkolwiek metoda taka nie bardzo, nie wyobrażam sobie z większą ilością plików czy treści TS. Co ciekawe, po wprowadzeniu tych zmian wskaźnik ilości zmian jest na 0.

0
Doctanna napisał(a):

Ostatecznie oto, co zrobiłam, acz nie jestem z tego dumna. Ponieważ treść charakterystyczna dla TS była nieznaczna, a wszystkie błędy dotyczyły jednego pliku, zakomentowałam treści TS i zmieniłam tymczasowo na .js. Skompilowało się. Zamieniłam na .ts, odkomentowałam treści TS i też się skompilowało więc problem rozwiązany, aczkolwiek metoda taka nie bardzo, nie wyobrażam sobie z większą ilością plików czy treści TS.

No ja bym to zinterpretował tak że symptom zniknął, ale podstawowa przyczyna która go wywołała nadal zapewne jest.

1
Doctanna napisał(a):

git status - czysto, wszystko na bieżąco. Natomiast kiedy próbowałam usunąć branche, idzie komunikat, że nie są fully merged. Tyle, że były mergowane i widzę, że zmiany z nich są obecne. Czy może być tak, że podczas squashu commitów coś się z nimi zadziało?

Zależy jak squashowane, ile commitów i w jaki sposób. Generalnie taki "prosty" squash nie powinien nic zepsuć, ale jeśli coś było kombinowane z kolejnością commitów to może.

Ten komunikat że nie są fully merged to jest ostrzeżenie z gita, że próbujesz usunąć branch na którym są commit'y które nie są zmergowane do innych branchów i je stracisz. Teraz problem jest taki że git uznaje commity za te same commity, tylko jeśli mają tą samą checksumę i rodziców, czyli dokładnie identyczny commit. Ale mogłaś połączyć branche używając własnie squasha, cherry-picka, rebase'a, albo w inny sposób przeniosłaś te zmiany na innych branch, że to nie są dokładnie te same commity, ale takie same. W gicie ten sam commit i taki sam commit to są różne rzeczy.

Także jeśli jesteś pewna że na tym branchu nie ma nic czego nie chcesz stracić, to możesz śmiało usunąć branch.

1 użytkowników online, w tym zalogowanych: 0, gości: 1